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)

REGRESSIONE LINEARE

(valor vero per ) = A + B

∆( ) = (

) 2

2

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 l’insieme completo di misure è:

Dove:

, ( 1 , …

, ) = , ( 1 ) ∙ , ( 2 ) ∙ … … … … .∙ , ( 2 )

2 = ∑ ( − − ) 2

1

2

1

2 /2

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

2

−2

2

Dove:

1

1

( − − )

=

0

( − − )

=

0

L’incertezza sulla misura di è:

Le incertezze su A e B sono:

=

2

Δ

=

Δ

1

Covarianza: = ∑( − ̅)( − ̅)

Il coefficiente di correlazione r è:

=

A

= 2

−∑

Δ

B =

−∑

Δ

Δ = ∑ 2 − (∑

) 2

= √ 2 ∑( − −

1

=1

) 2

∑( − ̅)( − ̅)

=

√∑( − ̅) 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)))}

cost_erf<- (1/(sd*sqrt(2*pi)))

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

beta<- (2*pi*sd)/180

tan(alfa)

tan(beta) errore <- beta/((cos(alfa))^2)

#funzione errori

#coefficiente integrale errori

#angolo medio in radianti

#delta misura in radianti

#coeff d'attrito

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)) lm(yp ~ x + I(x^2))

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

---------------------------------------------------------------------------------------

#regressione tempi y #regressione tempi y primati

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) lm(TP ~ x)

rettaT <- function (x) (1.846744 rettaTP <- function (x) (1.805513

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)

covXTP=(sum((x-mediaX)*(TP-mediaTP)))/(n-1)

#regressione tempi y

#regressione tempi y primati

-0.008483 *x ) -0.002997 *x )

#covarianza X,T

#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)

indiceXTP=covXTP/(devX*devTP) #indice di corr. di Pearson tra x e tp

RsqXT=(indiceXT)^2

RsqXTP=(indiceXTP)^2

--------------------------------------------------------------------------------------

#MISURA DI g:

#indice di corr. di Pearson tra x e t

coeff. R quadro di x e t coeff. R quadro di x e tp

g <-((0.7920*4*(pi)^2)/(solY^2))

#misura di g