You are on page 1of 17

Esperimento sulla legge di stato dei gas ideali

Roberto Battaglia Michele Bissacco Andrea Moscatello

4 e 12 maggio 2016

1 Obiettivo dell’esperienza
Verifica sperimentale dell’equazione di stato dei gas ideali e stimare il numero di moli di gas
all’interno del sistema.

2 Strumentazione usata
• Vaso dewar: vaso con pareti adiabatiche chiuso ermeticamente, all’interno del quale vi
era un ulteriore recipiente pieno di ghiaccio. Questo a sua volta contiene l’estremità
inferiore di una siringa attaccata ad un tubicino che esce dal coperchio del dewar e
collega la stessa ad una valvola a tre vie. Quando questa è chiusa il sistema è isolato
(oltre ovviamente che chiuso) e l’aria all’interno può transitare solo per un circuito che
passa per l’apparato di misura e ritorna di nuovo nella siringa. Quando invece la valvola
è aperta l’aria è in grado di entrare (ed uscire) e si può usare la manovella che regola il
volume della siringa per controllare il numero di moli di gas iniziali. All’interno del dewar
erano anche presenti una resistenza per modificare la temperatura del liquido interno e
un agitatore che permetteva di omogeneizzarla.

• Apparato di misura: questo era collegato digitalmente ad un computer per l’acquisizione


dei dati ed era composto da:

– sensibilità sensore di pressione: 103 cm2 /Kg;


– sensibilità sensore di volume: 10 cm−3 ;
– sensibilità sensore di temperatura: 102 K −1 .

3 Svolgimento dell’esperimento
A causa delle differenze di densità tra acqua più o meno calda, si è reso necessario l’uso
dell’agitatore per tentare di uniformare il più possibile la temperatura attorno alla siringa,
in modo che il termometro non rilevasse soltanto la temperatura di una porzione di fluido.
L’agitatore è stato utilizzato durante tutto l’esperimento: sia per raggiungere la temperatura
inziale sia per cercare di manternerla uniforme durante la presa dati.
Dopo aver fatto partire la rilevazione dati, si è proceduto a girare lentamente la manovella per
comprimere il gas, invertendo l’operazione una volta che si raggiungeva il volume minimo. Sono
stati acquisiti 8 campioni a diverse temperature: il primo è stato acquisito ad una temperatura
di 273.15 K e l’ultimo a 308.15 K, con intervalli di 5 K. Non si è invece riusciti a mantenere
una velocità uguale tra i vari campioni e questo causa negli ultimi set un errore di discordanza
tra i dati in compressione e decompressione (se ne rimanda la discussione in seguito).
Una volta finita la presa dati questi sono stati analizzati scartando però i transienti iniziali e
finali perchè i dati in prossimità di Vmin e Vmax non rispettavano più la dipendenza lineare
data dall’equazione PV=nRT e si disponevano a dei valori di V costanti (rispettivamente i
volumi critici di compressione e decompressione).

1
4 Grafici
I grafici V ( P1 ) sono stati realizzati senza barre di errore non perchè si considerano le misure
prive di errore, ma perchè rendo difficile la lettura del grafico. La rappresentazione dei dati è
stata inoltre fatta tramite linee e non punti in modo tale da poter apprezzare meglio dal punto
di vista temporale l’andamento dei dati ed eventuali fluttuazioni casuali.
I campioni verrano indicati con la temperatura associata in gradi Celsius per semplificarne
il riconoscimento, mentre con c e d ci si riferisce rispettivamente ai dati in compressione e
decompressione.
Coefficienti delle rette interpolanti V=A+B*(1/P) (σy è l’errore calcolato a posteriori sulle
ordinate):

Campione A σA B σB σy
(10−6 m3 ) (10−6 m3 ) (m3 · P a) (m3 · P a) (10−6 m3 )
0c -1.873 0.009 2.60 0.01 0.1
0d -1.881 0.008 2.58 0.01 0.1
5c -1.963 0.008 2.65 0.01 0.1
5d -1.958 0.009 2.64 0.01 0.1
10 c -1.965 0.008 2.70 0.01 0.1
10 d -1.97 0.01 2.69 0.02 0.1
15 c -2.038 0.008 2.75 0.01 0.1
15 d -2.054 0.009 2.74 0.02 0.1
20 c -2.055 0.009 2.80 0.02 0.1
20 d -1.99 0.01 2.78 0.02 0.1
25 c -2.072 0.009 2.85 0.01 0.1
25 d -2.10 0.01 2.84 0.02 0.1
30 c -2.07 0.01 2.89 0.02 0.1
30 d -2.13 0.01 2.88 0.02 0.1
35 c -2.21 0.01 2.95 0.02 0.1
35 d -2.18 0.01 2.92 0.02 0.1

T=273.15 K (campione 0)

2
T=278.15 K (campione 5)

T=283.15 K (campione 10)

3
T=288.15 K (campione 15)

T=293.15 K (campione 20)

4
T=298.15 K (campione 25)

T=303.15 K (campione 30)

5
T=308.15 K (campione 35)

Nel grafico seguente è stato rappresentato l’andamento del coefficiente B (coefficiente ango-
lare delle rette interpolanti) in funzione della temperatura che verrà poi utilizzato nell’analisi
per ricavarne il numero di moli di aria presenti nel sistema. La retta (a = (−0.007±0.006)m· N )
e b = (99 ± 2)· 10−5 m· N/K) rappresenta i valori che dovrebbero assumere i coefficienti se le
misure fossero acquisite senza errori.
Coefficiente B in funzione della temperatura:

6
Nel seguente grafico è invece stata graficata la pressione minima in funzione della tempe-
ratura e rappresentata una trasformazione isocora a volume: Vmax = (2.7 ± 0.1)10−5 m3 .
Valori dei coefficienti: a = (6 ± 7)104 Pa, b = (37 ± 2)10 Pa/K

Pressione in funzione della temperatura:

5 Discussione dei dati


Notazione:
T temperatura
P pressione
V volume
σi errore sulla grandezza i
n numero di moli

Le trasformazioni non sono avvenute ad una perfetta isotermia: come si è notato in seconda
analisi dai dati, la temperatura non seguiva un andamento regolare in nessuno nei campioni
acquisiti. Come si può infatti vedere dai grafici in appendice (sono stati messi in appendice
per non appesantire ulteriormente la relazione), nei campioni dal 10 al 30 la temperatura
è stata mantenuta abbastanza regolare grazie all’utilizzo corretto dell’agitatore, mentre nei
campioni agli estremi (0, 5, 35) la temperatura segue un andamento più irregolare. Questo,
oltre ad possibile errato utilizzo dell’agitatore, è causato dal fatto che a temperatura ambiente
(Tamb ≈ 296.15K = 23◦ C) c’è uno scambio termico meno incidente rispetto che a temperature
di 0 o 35 ◦ C, compromettendo l’approssimazione di isotermia in queste ultime.
L’errore di non-isotermia è stato corretto tramite una trasformazione isocora su ogni singola
misura. I dati della pressione diventano quindi Pi,corretto = Pi TTci con Tc la temperatura
corrispondente alla prima misura acquisita, temperatura che caratterizza l’isoterma. Questo è
il valore che sarebbe stato acquisito se il sistema fosse stato completamente isolato.
In seguito questi dati sono stati interpolati con una retta V = A + B P1 = −V0 + (nRTc ) P1 dove
A corrisponde al volume dei tubicini mentre V si rifesci al volume della siringa, cioè quello su
cui agisce lo sperimentatore durante la presa dati. E’ stato quindi stimato il numero di moli
n per ogni campione ed è stata calcolata una media pesata n1 .

7
Il numero di moli stimato per ogni campione è:

Campione n σn
10−8 (mol) 10−8 (mol)
0c 11660 6
0d 11589 6
5c 11693 6
5d 11617 6
10 c 11680 6
10 d 11636 7
15 c 11711 6
15 d 11663 7
20 c 11713 7
20 d 11610 7
25 c 11706 6
25 d 11664 8
30 c 11678 7
30 d 11633 8
35 c 11722 6
35 d 11627 6

ed il valore medio ricavato è:


n1 = (11664 ± 2)· 10−8 mol
Per verificare la costanza di n, sono state interpolate le coppie di dati (B, Tc ) con una retta
B = a + bTc ed è stata calcolata una seconda stima
b
n2 = = (11700 ± 200)10−8 mol
R
Oltre al fatto che n1 risulta decisamente più precisa di n2 , la si considerà anche come stima
più accurata (nonostante tra le due ci sia una compatibilità pari a 0.2) poichè i coefficienti B
hanno tutti errori diversi che non sono stati pesati nell’interpolazione per la stima di n2 .

Per la verifica della legge dei gas sono state interpolate le coppie di dati (Pmin , Tc ) con una
retta Pmin = a + bTc ed è poi stato stimato il volume massimo contenuto dalla siringa.
(2)
Inoltre è stato calcolato il χs = 7.2. Dato che il campione ha 6 gradi di libertà (i parametri
a e b sono dei vincoli perchè stimati a partire dai dati) il confince level e la compatibilità con
(2)
il valore atteso: χa = 6 sono:
CL ≈ 30% λ = 0.3
(2) (2)
Dato il valore del CL e l’ottima compatibilità tra χs e χa , si ritiene che l’andamento lineare
sia ottimale per la rappresentazione dei dati; la legge dei gas risulta quindi verificata.
Tutti gli errori delle stime ricavate sono stati calcolati per propagazione degli errori casuali.

Gli errori sistematici rilevanti presenti nell’esperimento sono:

• non isotermia della trasformazione: il sistema non è totalmente isolato e durante l’espe-
rimento scambia calore con l’ambiente esterno. Questo errore è stato corretto in analisi
(come già spiegato precedentemente) tramite una trasformazione isocora per ogni singola
misura di ogni campione;

• non reversibilità della trasformazione: la legge dei gas è infatti valida solo per trasforma-
zioni reversibili mentre le misure sono state acquisite su trasformazioni quasi statiche;
l’approssimazione diventa peggiore col diminuire delle misure per ogni campione.

8
• approssimazione dell’aria a gas ideale: seppur l’aria non sia completamente un gas ideale
questa approssimazione ha un’incidenza trascurabile in analisi. La discrepanza si può
notare maggiormente nei grafici: la prima parte di dati nel grafico risulta infatti mag-
giormente discostata dalla retta interpolante (la dipendenza lineare risulta maggiormente
rispettata nella parte centrale e finale).

Dopo aver finito l’acquisizione dei dati, gli sperimentatori hanno provato ad operare massi-
mizzando il secondo errore sistematico per avere un’idea di quanto e di come questo incidesse
sui dati. E’ stato quindi preso un campione modificando il volume il più velocemente possibile
e nel fare ciò si è notato, nell’interfaccia grafica del programma per la presa dei dati, che le
rette che rappresentavano i dati in compressione e quelli in decompressione si distaccavano
sempre di più all’aumentare della velocità di acquisizione. Per verificare che gli sperimentatori
abbiano preso le misure con la giusta velocità, per dare un peso trascurabile a questo errore
sistematico, sono state calcolate quindi le compatibiltà tra le intercette in compressione e in
decompressione di ogni campione:

Campione λA Numero di misure


0 0.7 4900
5 0.4 4914
10 0.7 4316
15 1.2 4479
20 5 3893
25 1.9 3053
30 3.3 2828
35 2.7 3873

Come si può notare dalla tabella, il variare delle compatibilità può essere causato dal fatto
che la velocità di compressione e decompressione non è stata mantenuta costante per tutti i
campioni acquisiti, ma è stata invece aumentata nei campioni che presentano compatibilità
peggiori. Questo si può notare qualitativamente dal numero di misure contenute dal cam-
pione: seppure non è rigorosamente rispettata la dipendenza lineare tra la compatibilità e il
numero di misure a causa della mancanza della durata temporale delle acquisizioni, il fatto
che indicativamente i campioni con compatibilità circa pessima presentino meno misure non è
quantomeno trascurabile. Seppur la compatibilità risulti non sempre ottimale le stime risulta-
no comunque abbastanza accurate dato che dai grafici risulta molto difficile trovare distinzioni
rilevanti tra i set di dati o le due rette interpolanti e questo dimostra che non ci sono errori di
incidenza rilevante.

6 Conclusione
La legge di stato dei gas è stata verificata sia per trasformazioni isoterme (grafici dei campioni
da 0 a 35) sia per trasformazioni isocore (ultimo grafico).
Il numero di moli di gas presenti nel sistema sono state stima come: n1 = (11664±2)· 10−8 mol.

9
7 Appendice
Grafici dell’andamento termico (sono state omesse le barre di errore perchè, oltre ad essere
di ampiezza trascurabile, si tratta di grafici qualitativi per vericare un andamento che non è
stato utilizzato direttamente in analisi dati):

10
11
12
13
Codice del programma di analisi dati
1 #include <i o s t r e a m >
2 #include <f s t r e a m >
3 #include <s t r i n g >
4 #include <v e c t o r >
5 #include <cmath>
6 #include <c c t y p e >
7 #include <s s t r e a m >
8 using namespace s t d ;
9
10
11 struct i n t e r p o l {
12 long double a , b ;
13 long double a s i g , b s i g , y s i g ;
14 long double covxy , covab ;
15 long double c o r r ;
16 v e c t o r <long double> A, B ; // possono e s s e r e u t i l i per l e covarianze
17 };
18
19 long double media ( v e c t o r <long double >);
20 v e c t o r <long double> m e d i a p e s a t a ( v e c t o r <long double >, v e c t o r <long double >);
21 long double c o m p a t i b i l i t a ( long double , long double , long double , long double ) ;
22 long double v a r ( v e c t o r <long double> ) ; // v a r i a n z a
23 long double cov ( v e c t o r <long double> , v e c t o r <long double> ) ; // c o v a r i a n z a
24 long double sumquad ( v e c t o r <long double> ) ; //somma q u a d r a t i c a
25 i n t e r p o l i n t e r p o l a z i o n e ( v e c t o r <long double> , v e c t o r <long double> ) ;
26 void ou tput ( v e c t o r <i n t e r p o l >, v e c t o r <long double >, v e c t o r <long double >,
27 i n t e r p o l , long double , long double ,
28 i n t e r p o l , long double , long double , v e c t o r <long double >,
29 v e c t o r <long double >, long double ) ;
30
31 i n t main ( ) {
32
33 i n t N;
34 c o u t << " Quanti ␣ c a m p i o n i ␣ d e v i ␣ a n a l i z z a r e ? ␣ " << e n d l ;
35 c i n >> N;
36
37 v e c t o r <i n t e r p o l > i n t e r (N ) ; // i n t e r . a t ( i ) c o n t i e n e una s t r u t t u r a
38 c o i d a t i d ’ i n t e r p o l a z i o n e ␣ d e l ␣ campione ␣ i −esimo
39
40 ␣ ␣ ␣ ␣ // t u t t i ␣ i ␣ d a t i ␣ sono ␣ i n ␣ u n i t ␣ S I
41 ␣ ␣ ␣ ␣ l o n g ␣ d o u b l e ␣R= 8 . 3 1 3 6 ; ␣ // c o s t a n t e ␣ d e i ␣ g a s
42 ␣ ␣ ␣ ␣ v e c t o r <l o n g ␣ double>␣n (N ) ; ␣ // numero ␣ d i ␣ m o l i
43 ␣ ␣ ␣ ␣ v e c t o r <l o n g ␣ double>␣ sig_n (N ) ;
44
45 ␣ ␣ ␣ ␣ l o n g ␣ d o u b l e ␣ sig_T = 0 . 0 0 1 ;
46
47 ␣ ␣ ␣ ␣ v e c t o r <l o n g ␣ double>␣B(N ) ;
48
49 ␣ ␣ ␣ ␣ v e c t o r <l o n g ␣ double>␣Pmin (N, 1 0 0 0 0 0 0 0 0 0 0 0 0 0 ) ;
50 ␣ ␣ ␣ ␣ v e c t o r <l o n g ␣ double>␣Tc (N ) ;
51
52
53 ␣ ␣ ␣ ␣ f o r ␣ ( i n t ␣ i =0; ␣ i <N; ␣++i ) ␣ {
54 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ s t r i n g ␣nome1 ;
55 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ c o u t ␣<<␣ " I n s e r i s c i ␣ i l ␣nome␣ d e l ␣ f i l e ␣ d i ␣ i n p u t : ␣ " ␣<<␣ e n d l ;
56 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ c i n ␣>>␣nome1 ;
57
58 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ v e c t o r <l o n g ␣ double>␣P ; ␣ // e q u i v a l e ␣ a ␣ 1/P
59 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ v e c t o r <l o n g ␣ double>␣V;
60 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ v e c t o r <l o n g ␣ double>␣T ;
61 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ v e c t o r <l o n g ␣ double>␣P1 ; ␣ //1/P␣ c o r r e t t a
62
63 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ i n t ␣k =0;
64 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ s t r i n g ␣temp ;
65 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ i f s t r e a m ␣ f i l e 1 ( nome1 ) ;
66
67 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ w h i l e ( g e t l i n e ( f i l e 1 , temp ) ) {
68 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ i s t r i n g s t r e a m ␣ i s ( temp ) ;
69 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ l o n g ␣ d o u b l e ␣a , b , c ;
70 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ i s ␣>>␣ a ␣>>␣b␣>>␣ c ;
71
72 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ i f ␣ ( k==0␣&&␣ i %2==0)␣ {
73 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣Tc . a t ( i )=c + 2 7 3 . 1 5 ;
74 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣T . push_back ( Tc . a t ( i ) ) ;
75 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ } ␣ e l s e ␣ i f ␣ ( k==0␣&&␣ i %2==1){

14
76 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣Tc . a t ( i )=Tc . a t ( i −1);
77 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣T . push_back ( Tc . a t ( i ) ) ;
78 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ } ␣ e l s e ␣ i f ␣ ( k !=0) ␣ {
79 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣T . push_back ( c + 2 7 3 . 1 5 ) ;
80 ␣␣␣␣␣␣␣␣␣␣␣␣}
81
82 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣V. push_back ( b / 1 0 0 0 0 0 0 ) ;
83
84 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣P . push_back ( 1 / ( a ∗ 1 0 0 0 0 ) ) ;
85 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ i f ␣ ( k !=0 ␣&&␣T . a t ( k)==Tc . a t ( i ) ) ␣P1 . push_back (P . a t ( k ) ) ;
86 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ e l s e ␣P1 . push_back (P . a t ( k ) ∗ Tc . a t ( i ) /T . a t ( k ) ) ;
87 ␣␣␣␣␣␣␣␣ // c o r r e z i o n e ␣ e r r o r e ␣ s i s t e m a t i c o ␣ d i ␣ non ␣ i s o t e r m i a
88
89 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ i f ␣ ( 1 / P1 . a t ( k)<Pmin . a t ( i ) ) ␣Pmin . a t ( i )=1/P1 . a t ( k ) ;
90
91 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣++k ;
92 ␣␣␣␣␣␣␣␣}
93
94 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ i n t e r . a t ( i )= i n t e r p o l a z i o n e ( P1 ,V ) ;
95 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣n . a t ( i )= i n t e r . a t ( i ) . b / (R∗T . a t ( 0 ) ) ;
96
97 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ // p r o p a g a z i o n e
98 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ l o n g ␣ d o u b l e ␣ deb=n . a t ( i ) / i n t e r . a t ( i ) . b ;
99 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ l o n g ␣ d o u b l e ␣deR=−n . a t ( i ) /R;
100 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ l o n g ␣ d o u b l e ␣deT=−n . a t ( i ) / Tc . a t ( i ) ;
101
102 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ sig_n . a t ( i )= s q r t ( deb ∗ deb ∗ i n t e r . a t ( i ) . b s i g ∗ i n t e r . a t ( i ) . b s i g+deT∗deT∗ sig_T ∗ sig_T ) ;
103 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ c o u t ␣<<␣ sig_n . a t ( i ) ␣<<␣ e n d l ;
104
105 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣B . a t ( i )= i n t e r . a t ( i ) . b ;
106
107 ␣␣␣␣}
108 ␣ ␣ ␣ ␣ // c i c l o ␣ f o r ␣ t e r m i n a t o
109
110 ␣ ␣ ␣ ␣ // a l t r o ␣ metodo ␣ p e r ␣ i l ␣ c a l c o l o ␣ d i ␣n
111 ␣ ␣ ␣ ␣ i n t e r p o l ␣ i n t e r 2=i n t e r p o l a z i o n e ( Tc , B ) ;
112 ␣ ␣ ␣ ␣ l o n g ␣ d o u b l e ␣ n2=i n t e r 2 . b/R;
113 ␣ ␣ ␣ ␣ l o n g ␣ d o u b l e ␣ sig_n2=i n t e r 2 . b s i g /R ;
114
115
116 ␣ ␣ ␣ ␣ // v e r i f i c a ␣ l e g g e ␣ d e i ␣ g a s
117 ␣ ␣ ␣ ␣ i n t e r p o l ␣ i n t e r 3=i n t e r p o l a z i o n e ( Tc , Pmin ) ;
118
119 ␣ ␣ ␣ ␣ l o n g ␣ d o u b l e ␣Vmax=m e d i a p e s a t a ( n , sig_n ) . a t ( 0 ) ∗R/ i n t e r 3 . b ;
120 ␣ ␣ ␣ ␣ // p r o p a g a z i o n e
121 ␣ ␣ ␣ ␣ l o n g ␣ d o u b l e ␣sig_Vmax=s q r t ( ( Vmax∗ m e d i a p e s a t a ( n , sig_n ) . a t ( 1 ) / i n t e r 3 . b ) ∗
122 ␣␣␣␣␣␣␣␣ (Vmax∗ m e d i a p e s a t a ( n , sig_n ) . a t ( 1 ) / i n t e r 3 . b)+(Vmax∗ i n t e r 3 . b s i g / i n t e r 3 . b ) ∗
123 ␣␣␣␣␣␣␣␣ (Vmax∗ i n t e r 3 . b s i g / i n t e r 3 . b ) ) ;
124
125 ␣ ␣ ␣ ␣ // c a l c o l o ␣ c h i q u a d r o
126 ␣ ␣ ␣ ␣ l o n g ␣ d o u b l e ␣ c h i q u a d r o =0;
127 ␣ ␣ ␣ ␣ l o n g ␣ d o u b l e ␣ p p a r i ; ␣ l o n g ␣ d o u b l e ␣ p d i s p a r i ; ␣ l o n g ␣ d o u b l e ␣PMIN ;
128
129 ␣ ␣ ␣ ␣ f o r ␣ ( i n t ␣ j =0; ␣ j <N; ␣++j ) ␣ {
130 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ i f ␣ ( j %2==0)␣ p p a r i=Pmin . a t ( j ) ;
131 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ i f ␣ ( j %2==1)␣ ␣ {
132 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ p d i s p a r i=Pmin . a t ( j ) ;
133 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ i f ␣ ( p p a r i <p d i s p a r i ) ␣ {PMIN=p p a r i ; }
134 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ e l s e ␣ {PMIN=p d i s p a r i ; }
135 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ c h i q u a d r o+=(PMIN−i n t e r 3 . a−i n t e r 3 . b∗Tc . a t ( j ) ) ∗
136 ␣␣␣␣␣␣␣␣ (PMIN−i n t e r 3 . a−i n t e r 3 . b∗Tc . a t ( j ) ) ;
137 ␣␣␣␣␣␣␣␣}
138 ␣␣␣␣}
139 ␣ ␣ ␣ ␣ c h i q u a d r o=c h i q u a d r o / i n t e r 3 . y s i g ;
140
141 ␣ ␣ ␣ ␣ o ut pu t ( i n t e r , n , sig_n , i n t e r 2 , n2 , sig_n2 , i n t e r 3 , Vmax, sig_Vmax , Tc , Pmin , c h i q u a d r o ) ;
142
143 ␣␣␣␣ return ␣ 0 ;
144 }
145
146
147
148 l o n g ␣ d o u b l e ␣ media ␣ ( v e c t o r <l o n g ␣ double>␣ d a t i ) ␣ {
149 ␣ ␣ ␣ ␣ l o n g ␣ d o u b l e ␣ r i s =0;
150 ␣ ␣ ␣ ␣ f o r ␣ ( i n t ␣ i =0; ␣ i <d a t i . s i z e ( ) ; ␣++i ) ␣ {
151 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ r i s+=d a t i . a t ( i ) ; ␣ // sommatoria

15
152 ␣␣␣␣}
153 ␣␣␣␣ r i s=r i s / d a t i . s i z e ( ) ;
154 ␣␣␣␣ return ␣ r i s ;
155 }
156 v e c t o r <l o n g ␣ double>␣ ␣ m e d i a p e s a t a ␣ ( v e c t o r <l o n g ␣ double>␣ ␣v , ␣ v e c t o r <l o n g ␣ double>␣ ␣ e ) ␣ {
157 ␣ ␣ ␣ ␣ v e c t o r <l o n g ␣ double>␣ ␣ o ( 2 ) ;
158 ␣ ␣ ␣ ␣ f o r ␣ ( i n t ␣ j =0; ␣ j <v . s i z e ( ) ; ␣++j ) ␣ {
159 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ o . a t (0)+=v . a t ( j ) / ( e . a t ( j ) ∗ e . a t ( j ) ) ;
160 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ o . a t (1)+=1/( e . a t ( j ) ∗ e . a t ( j ) ) ;
161 ␣␣␣␣}
162 ␣ ␣ ␣ ␣ o . a t (1)= s q r t ( 1 / o . a t ( 1 ) ) ;
163 ␣ ␣ ␣ ␣ o . a t (0)= o . a t ( 0 ) ∗ o . a t ( 1 ) ∗ o . a t ( 1 ) ;
164
165 ␣␣␣␣ return ␣o ;
166 }
167 l o n g ␣ d o u b l e ␣ c o m p a t i b i l i t a ( l o n g ␣ d o u b l e ␣ c1 , ␣ l o n g ␣ d o u b l e ␣ c2 ,
168 ␣␣␣␣␣␣␣␣ ␣␣␣␣␣␣␣␣ ␣␣␣␣␣␣␣␣ ␣␣␣␣␣␣␣␣ l o n g ␣ d o u b l e ␣ e r r 1 , ␣ l o n g ␣ d o u b l e ␣ e r r 2 ) ␣ {
169 ␣ ␣ ␣ ␣ d o u b l e ␣comp=( f a b s ( c1−c2 ) ) / s q r t ( e r r 1 ∗ e r r 1+e r r 2 ∗ e r r 2 ) ;
170 ␣ ␣ ␣ ␣ r e t u r n ␣comp ;
171 }
172 l o n g ␣ d o u b l e ␣ v a r ␣ ( v e c t o r <l o n g ␣ double>␣ d a t i ) {
173 ␣ ␣ ␣ ␣ l o n g ␣ d o u b l e ␣ s =0;
174 ␣ ␣ ␣ ␣ f o r ␣ ( i n t ␣ i =0; ␣ i <d a t i . s i z e ( ) ; ␣++i ) ␣ {
175 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ s+=d a t i . a t ( i ) ∗ d a t i . a t ( i ) ;
176 ␣␣␣␣}
177 ␣ ␣ ␣ ␣ s=s / d a t i . s i z e () − media ( d a t i ) ∗ media ( d a t i ) ;
178 ␣␣␣␣ return ␣ s ;
179 }
180
181 l o n g ␣ d o u b l e ␣ cov ␣ ( v e c t o r <l o n g ␣ double>␣ i c s , ␣ v e c t o r <l o n g ␣ double>␣ i p s ) ␣ {
182 ␣ ␣ ␣ ␣ l o n g ␣ d o u b l e ␣ boh =0;
183 ␣ ␣ ␣ ␣ f o r ␣ ( i n t ␣ j =0; ␣ j <i p s . s i z e ( ) ; ␣++j ) ␣ {
184 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ boh+=i c s . a t ( j ) ∗ i p s . a t ( j ) ;
185 ␣␣␣␣␣}
186 ␣ ␣ ␣ ␣ boh=boh / i c s . s i z e () − media ( i c s ) ∗ media ( i p s ) ;
187 ␣ ␣ ␣ ␣ r e t u r n ␣ boh ;
188 }
189
190 l o n g ␣ d o u b l e ␣sumquad␣ ( v e c t o r <l o n g ␣ double>␣x ) ␣ {
191 ␣ ␣ ␣ ␣ l o n g ␣ d o u b l e ␣ boh =0;
192 ␣ ␣ ␣ ␣ f o r ␣ ( i n t ␣ j =0; ␣ j <x . s i z e ( ) ; ␣++j ) ␣ {
193 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ boh+=x . a t ( j ) ∗ x . a t ( j ) ;
194 ␣␣␣␣␣}
195 ␣ ␣ ␣ ␣ r e t u r n ␣ boh ;
196 }
197
198
199 i n t e r p o l ␣ i n t e r p o l a z i o n e ( v e c t o r <l o n g ␣ double>␣ ␣x , ␣ v e c t o r <l o n g ␣ double>␣ ␣y ) ␣ {
200 ␣ ␣ ␣ ␣ i n t e r p o l ␣v ;
201
202 ␣ ␣ ␣ ␣ l o n g ␣ d o u b l e ␣ d e l t a=x . s i z e ( ) ∗ x . s i z e ( ) ∗ v a r ( x ) ;
203 ␣ ␣ ␣ ␣ // v . a=(sumquad ( x ) ∗ y . s i z e ( ) ∗ media ( y)−x . s i z e ( ) ∗ media ( x ) ∗ sumxy ) / d e l t a ;
204 ␣ ␣ ␣ ␣ // v . b=(x . s i z e ( ) ∗ sumxy−x . s i z e ( ) ∗ y . s i z e ( ) ∗ media ( x ) ∗ media ( y ) ) / d e l t a ;
205
206 ␣ ␣ ␣ ␣v . a =0;
207 ␣ ␣ ␣ ␣v . b=0;
208 ␣ ␣ ␣ ␣ f o r ␣ ( i n t ␣ j =0; ␣ j <x . s i z e ( ) ; ␣++j ) ␣ {
209 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣v .A. push_back ( ( sumquad ( x)−x . a t ( j ) ∗ x . s i z e ( ) ∗ media ( x ) ) / d e l t a ) ;
210 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣v . B . push_back ( ( x . s i z e ( ) ∗ x . a t ( j )−x . s i z e ( ) ∗ media ( x ) ) / d e l t a ) ;
211 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣v . a+=v .A. a t ( j ) ∗ y . a t ( j ) ;
212 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣v . b+=v . B . a t ( j ) ∗ y . a t ( j ) ;
213 ␣␣␣␣}
214
215
216 ␣ ␣ ␣ ␣v . covxy=cov ( x , y ) ;
217 ␣ ␣ ␣ ␣ // v . b=v . covxy / ( v a r ( x ) ) ;
218 ␣ ␣ ␣ ␣ // v . a=media ( y)−v . b∗ media ( x ) ;
219 ␣ ␣ ␣ ␣v . c o r r=v . covxy / s q r t ( v a r ( x ) ∗ v a r ( y ) ) ;
220
221 ␣ ␣ ␣ ␣v . y s i g=s q r t ( v a r ( y )∗(1 − v . c o r r ∗v . c o r r ) ∗ x . s i z e ( ) / ( x . s i z e ( ) − 2 ) ) ;
222 ␣ ␣ ␣ ␣v . covab=−media ( x ) ∗ v . y s i g ∗v . y s i g / ( x . s i z e ( ) ∗ v a r ( x ) ) ;
223 ␣ ␣ ␣ ␣v . a s i g=v . y s i g ∗ s q r t ( sumquad ( x ) / d e l t a ) ;
224 ␣ ␣ ␣ ␣v . b s i g=v . y s i g ∗ s q r t ( x . s i z e ( ) / d e l t a ) ;
225
226 ␣ ␣ ␣ ␣ r e t u r n ␣v ;
227 }

16
228
229 v o i d ␣ ou tp ut ( v e c t o r <i n t e r p o l >␣ i n t 1 , v e c t o r <l o n g ␣ double>␣n1 , v e c t o r <l o n g ␣ double>sig_n1 ,
230 i n t e r p o l ␣ i n t 2 , l o n g ␣ d o u b l e ␣n2 , l o n g ␣ d o u b l e ␣ sig_n2 ,
231 ␣ i n t e r p o l ␣ i n t 3 , l o n g ␣ d o u b l e ␣vmax , l o n g ␣ d o u b l e ␣ sig_vmax ,
232 v e c t o r <l o n g ␣ double>␣ tc , v e c t o r <l o n g ␣ double>␣pmin , l o n g ␣ d o u b l e ␣ c h i q u a d ) ␣ {
233 ␣ ␣ ␣ ␣ s t r i n g ␣nome2 ;
234 ␣ ␣ ␣ ␣ c o u t ␣<<␣ " I n s e r i r e ␣ i l ␣nome␣ d e l ␣ f i l e ␣ d i ␣ ou tp ut : ␣ " ␣<<␣ e n d l ;
235 ␣ ␣ ␣ ␣ c i n ␣>>␣nome2 ;
236
237 ␣ ␣ ␣ ␣ o f s t r e a m ␣ f i l e 2 ( nome2 ) ;
238
239 ␣ ␣ ␣ ␣ f i l e 2 ␣<<␣ " Campione \tA\ tsig_A \tB\ tsig_B \ t s i g _ y \ tn \ t s i g _ n " ␣<<␣ e n d l ;
240 ␣ ␣ ␣ ␣ f o r ␣ ( i n t ␣ i =0; ␣ i <i n t 1 . s i z e ( ) ; ␣++i ) ␣ {
241 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ f i l e 2 ␣<<␣ i ∗5 ␣<<␣ " \ t " ␣<<␣ i n t 1 . a t ( i ) . a ␣<<␣ " \ t " ␣<<␣ i n t 1 . a t ( i ) . a s i g ␣<<␣ " \ t "
242 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣<<␣ i n t 1 . a t ( i ) . b␣<<␣ " \ t " ␣<<␣ i n t 1 . a t ( i ) . b s i g ␣<<␣ " \ t " ␣<<␣ i n t 1 . a t ( i ) . y s i g
243 ␣␣␣␣␣␣␣␣ ␣␣␣␣␣␣␣␣<<␣ " \ t "
244 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣<<␣ n1 . a t ( i ) ␣<<␣ " \ t " ␣<<␣ sig_n1 . a t ( i ) ␣<<␣ e n d l ;
245 ␣␣␣␣}
246 ␣ ␣ ␣ ␣ f i l e 2 ␣<<␣ " \ nMedia ␣ p e s a t a ␣ d i ␣n␣=␣ " ␣<<
247 m e d i a p e s a t a ( n1 , sig_n1 ) . a t ( 0 ) ␣<<␣ " ␣+−␣ "
248 ␣<<␣ m e d i a p e s a t a ( n1 , sig_n1 ) . a t ( 1 ) ␣<<␣ e n d l ;
249
250 ␣ ␣ ␣ ␣ /∗ f i l e 2 ␣<<␣ " \ n C o m p a t i b i l i t : " ␣<<␣ e n d l ;
251 ␣ ␣ ␣ ␣ f o r ␣ ( i n t ␣ i =0; ␣ i <i n t 1 . s i z e ( ) − 1 ; ␣++i ) ␣ {
252 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ f o r ␣ ( i n t ␣ j=i +1; ␣ j <i n t 1 . s i z e ( ) ; ␣++j ) ␣ {
253 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ f i l e 2 ␣<<␣ i +1␣<<␣ " ␣−␣ " ␣<<␣ j +1␣<<␣ " \ t "
254 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣<<␣ c o m p a t i b i l i t a ( enne . a t ( i ) , ␣ enne . a t ( j ) ,
255 ␣␣␣␣␣␣␣␣ ␣␣␣␣␣␣␣␣ s i g _ e n n e . a t ( i ) , s i g _ e n n e . a t ( j ) ) ␣<<␣ e n d l ;
256 ␣␣␣␣␣␣␣␣}
257 ␣ ␣ ␣ ␣ }∗/
258
259 ␣ ␣ ␣ ␣ f i l e 2 ␣<<␣ " \ n\ na \ t s i g _ a \ tb \ t s i g _ b \ t s i g _ y \ tn2 \ t s i g _ n 2 " ␣<<␣ e n d l ;
260 ␣ ␣ ␣ ␣ f i l e 2 ␣<<␣ i n t 2 . a ␣<<␣ " \ t " ␣<<␣ i n t 2 . a s i g ␣<<␣ " \ t " ␣<<␣ i n t 2 . b␣<<␣ " \ t " ␣<<␣ i n t 2 . b s i g ␣<<␣ " \ t "
261 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣<<␣ i n t 2 . y s i g ␣<<␣ " \ t " ␣<<␣ n2 ␣<<␣ " \ t " ␣<<␣ sig_n2 ␣<<␣ e n d l ;
262
263 ␣ ␣ ␣ ␣ f i l e 2 ␣<<␣ " \ n\nE\ tsig_E \ tF \ tsig_F \ t s i g _ y \tVmax\ tsig_Vmax " ␣<<␣ e n d l ;
264 ␣ ␣ ␣ ␣ f i l e 2 ␣<<␣ i n t 3 . a ␣<<␣ " \ t " ␣<<␣ i n t 3 . a s i g ␣<<␣ " \ t " ␣<<␣ i n t 3 . b␣<<␣ " \ t " ␣<<␣ i n t 3 . b s i g ␣<<␣ " \ t "
265 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣<<␣ i n t 3 . y s i g ␣<<␣ " \ t " ␣<<␣vmax␣<<␣ " \ t " ␣<<␣ sig_vmax ␣<<␣ " \ n\n\n " ␣<<␣ e n d l ;
266
267 ␣ ␣ ␣ ␣ f i l e 2 ␣<<␣ " Chiquadro ␣=␣ " ␣<<␣ c h i q u a d ␣<<␣ e n d l ;
268 ␣ ␣ ␣ ␣ f i l e 2 ␣<<␣ " \nT_c\tP_min " ␣<<␣ e n d l ;
269 ␣ ␣ ␣ ␣ f o r ␣ ( i n t ␣ i =0; ␣ i <i n t 1 . s i z e ( ) ; ␣++i ) ␣ {
270 ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ f i l e 2 ␣<<␣ t c . a t ( i ) ␣<<␣ " \ t " ␣<<␣pmin . a t ( i ) ␣<<␣ e n d l ;
271 ␣␣␣␣}
272 }

17

You might also like