Sei sulla pagina 1di 8

Errore su f (propagazione errori su funzione f, dove gli xi sono le variabili da cui dipende f, affette da errore xi)

2
( ) = ( ) 2


REGRESSIONE LINEARE

(valor vero per ) = A + B

la misura di governata da una distribuzione normale centrata su questo valore vero, con parametro di lunghezza .
Allora la probabilit di ottenere il valore osservato :

1 ( )2/2 2
, ( )

La probabilit di ottenere linsieme completo di misure :

1 2/2
, (1 , . . , ) = , (1 ) , (2 ) . , (2 )

Dove:

2
( )2
=
2
1

Ovviamente per massimizzare la probabilit P bisogna minimizzare la somma dei quadrati in 2 .


Differenziando 2 rispetto ad A e B e ponendo le derivate uguali a 0:

2 2 2
=
1 ( ) = 0 A=
2

2 2
=
1 ( ) = 0 B=
2

Dove:
= 2 ( )2

Lincertezza sulla misura di :


1
= ( )2
2
=1

Le incertezze su A e B sono:

2
= =

1
Covarianza: = ( )( )

Il coefficiente di correlazione r :

( )( )
= =

( )2 ( )2
DEV STANDARD IN C

//programma : calcola la media e la deviazione standard di N elementi inseriti usando i file

#include<stdio.h>
#include<math.h>

#define NUMERO_ELEMENTI_MAX 100

main()
{
int numElementi;
char nomeFile[100];
double elementi[NUMERO_ELEMENTI_MAX], media, somma, sommaScarti, varianza;
int i;
FILE *pf ;

//lettura nome file


printf("Inserisci il nome del file da cui prelevare i dati : ");
scanf("%s",nomeFile);

if (!((pf = fopen(nomeFile,"r")) == NULL)) {

//lettura elementi da file


i = 0;
while(fscanf(pf,"%lf",&elementi[i]) != EOF)
i++;

numElementi = i;

//se gli elementi letti sono minori o uguali al numero massimo consentito esegui calcoli

if (numElementi <= NUMERO_ELEMENTI_MAX){

for (i = 0, somma = 0; i < numElementi; i++){


printf("%lf\n",elementi[i]);
somma += elementi[i];
}

media = somma / numElementi;

for(i = 0, sommaScarti = 0; i < numElementi; i++){


sommaScarti += pow(elementi[i]-media,2);
}

varianza = sqrt(sommaScarti / numElementi);

printf("Media = %.4lf \nSQM = %.4lf\n",media,varianza);


}
else //altrimenti restituisci l'errore
printf("ERRORE !! Il numero massimo di elementi %d mentre nel file ci sono %d
elementi\n",NUMERO_ELEMENTI_MAX,numElementi);
}
else printf("Il file sorgente non esiste !! \n");
system("PAUSE");
}
MEDIA IN C

#include <stdio.h>
#include <stdlib.h>

int main ()
{
int totale, valore, somma, count, media;
printf("inserisci il numero dei voti per calcolarne la media : ");
scanf("%d", &totale);
count=0;
somma=0;
do
{
printf("inserisci il voto : ");
scanf("%d", &valore);
somma+=valore;
count++;
}
while(count<totale);
media=somma/count;
printf("\nLa media e': %d\n\n", media);
system("pause");
return 0;
}

ESEMPIO DISTRIBUZIONE NORMALE IN R

x<-c()
misure<-c(1:100)
media <-mean(x) #media
sd <-sd(x) #deviazione standard
varianza <-var(x) #varianza
sdm<-sd/sqrt(100) #deviazione standard della media
df<-6 #gradi di libert (9-3)
-------------------------------------------------------------------------------------
hist(x, breaks=9, xlab=NULL, ylab=NULL, main=NULL)
dnorm(x,mean=media,sd=sd)
plot(hist(x), freq=FALSE, ylab="probabilit", xlab="valori (g)", main=NULL)
gaussiana <- function(x) (dnorm(x,mean=media,sd=sd))
curve(gaussiana(x), 0, 13, col=2, add=TRUE)
hist(x, breaks=9, plot=F)
-----------------------------------------------------------------------------------
INTEGRALE DEGLI ERRORI

erf <- function(x) {exp(-(((x-media)^2)/(2*sd^2)))} #funzione errori


cost_erf<- (1/(sd*sqrt(2*pi))) #coefficiente integrale errori
integrate(erf, lower = 9.156497, upper = 10.717903)
Ek<-c(Ek1,Ek2,Ek3,Ek4,Ek5,Ek6,Ek7,Ek8,Ek9)
Ok<-c(2,8,19,29,19,12,8,2,1)
chi<-sum(((Ok-Ek)^2)/Ek)
chirid<-chi/df
alfa=(pi*media)/180 #angolo medio in radianti
beta<- (2*pi*sd)/180 #delta misura in radianti
tan(alfa) #coeff d'attrito
tan(beta)
errore <- beta/((cos(alfa))^2)
ESEMPIO REGRESSIONE LINEARE

x <-c(5,10,15,20,25,30,35,40,45,50,55,60,65)
T <-c(17.91,17.62,17.29,16.96,16.93,16.93,16.88,16.83,16.99,17.35,17.48,17.47,17.73)
TP <-c(17.70,17.48,17.28,17.20,17.44,17.27,17.24,17.33,17.33,17.37,17.35,17.56,17.87)
------------------------------------------------------------------------------
n_oscillazioni1 =10 #n oscillazioni 10
n_oscillazioni2 =50 #n oscillazioni 50
oscill_T <-(T/10) #tempo singola oscillazione
oscill_TP <-(TP/10) #tempo singola oscillazione primati
x=x
y=oscill_T <-(T/10)
yp=oscill_TP <-(TP/10)
-----------------------------------------------------------------------------------
FIT di T e TP
---------------------------------------------------------------------------------
lm(y ~ x + I(x^2)) #regressione tempi y
lm(yp ~ x + I(x^2)) #regressione tempi y primati
rettaT <- function (x) (1.8192727 -0.0074917*x +0.0001072*x^2)
rettaTP <- function (x) (1.77844056 -0.00334535*x +0.00005101*x^2)
library(plotrix)
curve(rettaT(x), 0, 70, col="midnightblue",add=TRUE, ylab="T,T'(s)", xlab="distanza tra le masse (cm)", main="andamenti di T e
T'")
curve(rettaTP(x), 0, 70, col="brown4", add=TRUE)
legend(25, 1.81, legend=c("T", "T '"),
col=c("midnightblue", "brown4"), lty=1:1)
-------------------------------------------------------------------------------------
APPROSSIMAZIONE A PENDOLO SEMPLICE
---------------------------------------------------------------------------------------
x <-c(2,3,4,5,6,7,8,9,10)
T <-c(1.8306, 1.8226, 1.8118, 1.8028, 1.7960, 1.7854, 1.7798, 1.7718, 1.7618)
TP <-c(1.8006, 1.7974, 1.7916, 1.7890, 1.7886, 1.7840, 1.7826, 1.7782, 1.7758)
lm(T ~ x) #regressione tempi y
lm(TP ~ x) #regressione tempi y primati
rettaT <- function (x) (1.846744 -0.008483 *x )
rettaTP <- function (x) (1.805513 -0.002997 *x )
curve(rettaT(x), 0, 15, col="midnightblue", add=TRUE, ylab="T,T'(s)", xlab="distanza tra le masse (cm)", main="regressioni di T e
T'")
curve(rettaTP(x), 0, 15, col="brown4", add=TRUE)
points(x, T, col="midnightblue", pch = 19, add=TRUE)
points(x, TP, col="brown4", pch = 19, add=TRUE)
solX <-c(7.515676267)
solY <-c(1.78298852)
points(solX, solY, col="yellow", pch=19, add=TRUE)
--------------------------------------------------------------------------------------
ANALISI QUALITA' DELLA REGRESSIONE
--------------------------------------------------------------------------------------
covXT=(sum((x-mediaX)*(T-mediaT)))/(n-1) #covarianza X,T
covXTP=(sum((x-mediaX)*(TP-mediaTP)))/(n-1) #covarianza X,TP
devX=sd(x) #dev standard di x
devT=sd(T) #dev standard di T
devTP=sd(tp) #dev standard di TP
indiceXT=covXT/(devX*devT) #indice di corr. di Pearson tra x e t
indiceXTP=covXTP/(devX*devTP) #indice di corr. di Pearson tra x e tp
RsqXT=(indiceXT)^2 coeff. R quadro di x e t
RsqXTP=(indiceXTP)^2 coeff. R quadro di x e tp
--------------------------------------------------------------------------------------
#MISURA DI g: g <-((0.7920*4*(pi)^2)/(solY^2)) #misura di g