Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Dati sperimentali: fit

667 views
Skip to first unread message

saturni....@gmail.com

unread,
Apr 5, 2015, 2:18:44 PM4/5/15
to
Buonasera,

è la prima volta che mi avvicino a problemi di questo tipo
non so se sono nel newsgroup corretto, comunque ci provo,
certo che voi avrete senz'altro utilizzato Gnuplot.

Devo effettuare il fit con il metodo del minimo chiquadro
di un insieme di dati sperimentali, per esempio questi:

#x y err_y
1 1 0.5
2 3 0.4
3 2 0.6
4 4 0.2


in cui la prima colonna è relativa alla x,
la seconda alla y
la terza agli errori su y.

Ho digitato le seguenti istruzioni
con l'intento di interpolare i dati contenuti
nel file di testo scritto sopra utilizzando la
colonna relativa agli errori su y.


gnuplot> f(x) = a+b*x
gnuplot> a=0.8
gnuplot> b=0.01
gnuplot> fit f(x) 'prova.txt' using 1:2:3 via a, b

Voglio infatti interpolare i dati con una funzione lineare
con dati iniziali a=0.8 e b=0.01

Gnuplot resituisce la seguente stringa:


gnuplot> fit f(x) 'prova.txt' using 1:2:3 via a, b
warning:
> Implied independent variable y not found in fit function.
> Assuming version 4 syntax with zerror in column 3 but no zerror keyword.

Poi calcola a e b. come indicato nel seguito.
Vengo alla mia domanda: Che significa la stringa

"warning:
> Implied independent variable y not found in fit function.
> Assuming version 4 syntax with zerror in column 3 but no zerror keyword."

Grazie per ogni vostro aiuto o, eventuale reidirizzamento verso newsgroup più opportuno.

Andrea


iter chisq delta/lim lambda a b
0 2.8328940000e+02 0.00e+00 1.75e+00 8.000000e-01 1.000000e-02
1 4.0575358532e+01 -5.98e+05 1.75e-01 3.051492e+00 1.235020e-02
2 3.0428733789e+01 -3.33e+04 1.75e-02 2.990926e+00 1.167169e-01
3 7.6234353629e+00 -2.99e+05 1.75e-03 7.808926e-01 7.899412e-01
4 7.5278810864e+00 -1.27e+03 1.75e-04 6.283581e-01 8.363991e-01
5 7.5278810409e+00 -6.04e-04 1.75e-05 6.282528e-01 8.364312e-01
iter chisq delta/lim lambda a b

After 5 iterations the fit converged.
final sum of squares of residuals : 7.52788
rel. change during last iteration : -6.04474e-009

degrees of freedom (FIT_NDF) : 2
rms of residuals (FIT_STDFIT) = sqrt(WSSR/ndf) : 1.94009
variance of residuals (reduced chisquare) = WSSR/ndf : 3.76394
p-value of the Chisq distribution (FIT_P) : 0.0231922

Final set of parameters Asymptotic Standard Error
======================= ==========================
a = 0.628253 +/- 1.008 (160.5%)
b = 0.836431 +/- 0.2918 (34.88%)

correlation matrix of the fit parameters:
a b
a 1.000
b -0.950 1.000
gnuplot> plot f(x)

Giorgio Bibbiani

unread,
Apr 6, 2015, 1:27:34 AM4/6/15
to
saturni....@gmail.com ha scritto:
Non so, io con la versione 4.6 di Gnuplot sotto Windows XP 32 bit
ho ottenuto per il fit il tuo identico risultato (avendo copincollato sia il file
di dati che i comandi gnuplot) ma senza alcun messaggio di warning.

Ciao
--
Giorgio Bibbiani

saturni....@gmail.com

unread,
Apr 6, 2015, 3:38:51 AM4/6/15
to
Ne avevo il sentore.
Il mio è gnuplot 5.0 patchlevel 0.

Grazie Giorgio, buone feste.
André

Giorgio Pastore

unread,
Apr 6, 2015, 5:50:53 AM4/6/15
to
Il 06/04/15 09:38, saturni....@gmail.com ha scritto:
> Il giorno lunedì 6 aprile 2015 07:27:34 UTC+2, Giorgio Bibbiani ha scritto:
....
>> Non so, io con la versione 4.6 di Gnuplot sotto Windows XP 32 bit
>> ho ottenuto per il fit il tuo identico risultato (avendo copincollato sia il file
>> di dati che i comandi gnuplot) ma senza alcun messaggio di warning.
>>
>> Ciao
>> --
>> Giorgio Bibbiani
>
> Ne avevo il sentore.
> Il mio è gnuplot 5.0 patchlevel 0.

Infatti e' un cambiamento introdotto con la 5.0. Da
http://www.gnuplot.info/ReleaseNotes_5_0.html

"
- The "fit" command can now handle functions with up to 12 variables,
and can take into account errors on x as well as errors on dependent
variables. Final covariance terms are stored in user-accessible
variables. Fitting options are now controlled by the command "set fit
..." rather than by environmental variables.
- The interpretation of columns in a "fit" command depends on new
keywords "error", "xyerror", "zerror". In most cases the program can
also recognize version 4 syntax (no error keyword but last column
contains zerror). "


Giorgio

saturni....@gmail.com

unread,
Apr 6, 2015, 6:19:03 AM4/6/15
to
Il giorno lunedì 6 aprile 2015 11:50:53 UTC+2, Giorgio Pastore ha scritto:

Grazie per la risposta.

Resta però il dubbio: il messaggio:

warning:
> Implied independent variable y not found in fit function.
> Assuming version 4 syntax with zerror in column 3 but no zerror keyword.

sembra alludere al fatto di non aver trovato la variabile y, quando invece sta come da prassi nella seconda colonna. Inoltre non so che cosa sia quel "zerror"... Sembra che la colonna 3 non venga assunta come la colonna degli errori.

Puoi aiutarmi a capire?

Grazie,
André

Giorgio Pastore

unread,
Apr 6, 2015, 11:08:46 AM4/6/15
to
Il 06/04/15 12:19, saturni....@gmail.com ha scritto:
> Il giorno lunedì 6 aprile 2015 11:50:53 UTC+2, Giorgio Pastore ha scritto:
>
> Grazie per la risposta.
>
> Resta però il dubbio: il messaggio:
>
> warning:
>> Implied independent variable y not found in fit function.
>> Assuming version 4 syntax with zerror in column 3 but no zerror keyword.
>
> sembra alludere al fatto di non aver trovato la variabile y, quando invece sta come da prassi
> nella seconda colonna. Inoltre non so che cosa sia quel "zerror"... Sembra che la colonna 3 non
> venga assunta come la colonna degli errori.

Non esattamente.

la nuova sitassi prevederebbe le seguenti due possibilita:

fit f(x) 'data.txt' u 1:2:3 zerror via a,b

oppure equivalentemente

fit f(x) 'data.txt' u 1:2:3 errors z via a,b


se usi la vecchia sintassi,

fit f(x) 'data.txt' u 1:2:3 via a,b

la versione 5.0 supporrebbe che tu stia cercando di usare una funzione
di una sola variable (f(x)) per fare il fit di dati funzioni di 2
veriabili (x,y,z(x,y)) tabulati su file. Siccome pero' l' uso normale in
un acaso del genere sarebbe di usare un funzione di 2 variabili ( g(x,y)
p.es.) invece della f(x), proprio dal fatto che la funzione fit (f) non
dipende dalla vriabile indipendente y, deduche che in realta' si tratta
della vecchia sintassi e interpreta correttamente il comando proprio
come se fosse stato dato in uno dei due formati previsti adesso.

Per cui, i risultati sono ok, ma per evitare di portatri dietro una
sintassi che potrebbe diventare obsoleta, passa alla nuova.

Giorgio

saturni....@gmail.com

unread,
Apr 6, 2015, 11:32:57 AM4/6/15
to
Il giorno lunedì 6 aprile 2015 17:08:46 UTC+2, Giorgio Pastore ha scritto:

> fit f(x) 'data.txt' u 1:2:3 errors z via a,b

> Per cui, i risultati sono ok, ma per evitare di portatri dietro una
> sintassi che potrebbe diventare obsoleta, passa alla nuova.
>
> Giorgio

Ottimo, stessi risultati senza warning con la nuova sintassi indicata sopra.

Ho fatto un fit:

gradi di libertà n = (dati sperimentali)-parametri = 50
final sum of squares of residuals : 218.271
ossia la somma dei residui risulta 218.271.
Riporto nel seguito l'output di Gnuplot.

Nonostante il fit ottenuto mi permetta di validare la legge fisica entro gli errori stimati, la somma dei residui mi sembra decisamente troppo elevata.

Poiché sono nuovissimo di questo campo, chiedo a voi senz'altro più esperti di me un cortese feed-back.

Grazie,
André



---

After 5 iterations the fit converged.
final sum of squares of residuals : 218.271
rel. change during last iteration : -2.29264e-006

degrees of freedom (FIT_NDF) : 50
rms of residuals (FIT_STDFIT) = sqrt(WSSR/ndf) : 2.08936
variance of residuals (reduced chisquare) = WSSR/ndf : 4.36542
p-value of the Chisq distribution (FIT_P) : 0

Final set of parameters Asymptotic Standard Error
======================= ==========================
a = 156.368 +/- 4.148 (2.653%)
b = 0.0431202 +/- 0.000893 (2.071%)

correlation matrix of the fit parameters:
a b
a 1.000
b 0.806 1.000

Giorgio Bibbiani

unread,
Apr 6, 2015, 12:10:29 PM4/6/15
to
saturni....@gmail.com ha scritto:
> gradi di libertà n = (dati sperimentali)-parametri = 50
> final sum of squares of residuals : 218.271
> ossia la somma dei residui risulta 218.271.
> Riporto nel seguito l'output di Gnuplot.
...
> p-value of the Chisq distribution (FIT_P) : 0

E' un chiquadro francamente eccessivo, come si
vede anche dal p-value, penserei che la funzione
test utilizzata per il fit non rappresenti correttamente
i dati (eventualmente quali, ricavati come?)

Ciao
--
Giorgio Bibbiani

saturni....@gmail.com

unread,
Apr 6, 2015, 12:16:36 PM4/6/15
to

> E' un chiquadro francamente eccessivo, come si
> vede anche dal p-value, penserei che la funzione
> test utilizzata per il fit non rappresenti correttamente
> i dati (eventualmente quali, ricavati come?)

Trattasi delle massime ampiezze d'oscillazione
di un pendolo fisico smorzato.

La funzione interpolante essendo chiaramente di forma esponenziale

gnuplot> f(x) = a * exp(-x*b)

valori iniziali dei parametri

gnuplot> a=402
gnuplot> b=0.06

i dati da interpolare sono i seguenti.

#X Y Errore

0.430 160 12
1.901 148 7
3.320 131 5
4.739 122 4
6.159 114 4
7.578 107 4
8.997 101 4
10.416 95 5
11.836 90 4
13.256 85 3
14.675 81 3
16.094 77 3
17.514 73 3
18.933 69 3
20.352 66 3
21.772 62 2
23.191 59 3
24.610 56 3
26.029 53 3
27.398 50 4
28.868 48 4
30.237 45 4
31.656 43 3
33.075 41 3
34.495 39 3
35.914 36 2
37.333 35 2
38.754 33 2
40.173 31 1
41.592 29 1
43.011 28 1
44.431 26 1
45.799 24 3
47.219 23 3
48.688 22 2
50.057 20 2
51.477 18 1
52.947 17 2
54.315 15 1
55.735 14 1
57.154 13 1
58.573 11 1
59.942 10 2
61.361 9 2
62.831 8 1
64.200 7 1
65.619 6 1
67.038 5 1
68.458 4 1
69.827 3 1
71.195 2 1
72.564 1 1

Giorgio Bibbiani

unread,
Apr 6, 2015, 12:41:58 PM4/6/15
to
saturni....@gmail.com ha scritto:
> Trattasi delle massime ampiezze d'oscillazione
> di un pendolo fisico smorzato.
>
> La funzione interpolante essendo chiaramente di forma esponenziale

Chiaramente? Stai facendo un'ipotesi fisica (che la forza
di attrito sia direttamente proporzionale alla velocita') che
non e' detto valga necessariamente per le date condizioni
sperimentali.
E' possibile che la corretta funzione interpolante non sia
una semplice esponenziale...
Suppongo che X sia il tempo misurato in secondi con un timer
elettronico e un fototraguardo e Y la corrispondente ampiezza
(misurata in mm? L'ampiezza e in particolare il suo errore come
sono stati misurati?).

Qual era l'ampiezza angolare massima misurata?

Ciao
--
Giorgio Bibbiani

saturni....@gmail.com

unread,
Apr 6, 2015, 1:23:50 PM4/6/15
to
Il giorno lunedì 6 aprile 2015 18:41:58 UTC+2, Giorgio Bibbiani ha scritto:
> saturni....@gmail.com ha scritto:
> > Trattasi delle massime ampiezze d'oscillazione
> > di un pendolo fisico smorzato.
> >
> > La funzione interpolante essendo chiaramente di forma esponenziale
>
> Chiaramente? Stai facendo un'ipotesi fisica (che la forza
> di attrito sia direttamente proporzionale alla velocita') che
> non e' detto valga necessariamente per le date condizioni
> sperimentali.

Vero, ho troncato Taylor al prim'ordine.

> E' possibile che la corretta funzione interpolante non sia
> una semplice esponenziale...

> Suppongo che X sia il tempo misurato in secondi con un timer
> elettronico e un fototraguardo e Y la corrispondente ampiezza

tempi -> secondi
per l'ampiezza, scostamento angolare dalla verticale: unità arbitrarie.
Non ci è dato sapere che cosa siano. Sicuramente non sono né gradi né radianti.

> (misurata in mm? L'ampiezza e in particolare il suo errore come
> sono stati misurati?).

Ho notato però che tagliando la coda di 5-6 elementi la somma dei residui diminuisce drasticamente...

Elio Fabri

unread,
Apr 6, 2015, 4:00:49 PM4/6/15
to
saturni....@gmail.com ha scritto:
> gradi di libertà n = (dati sperimentali)-parametri = 50
> final sum of squares of residuals: 218.271
> ossia la somma dei residui risulta 218.271.
> Riporto nel seguito l'output di Gnuplot.
>
> Nonostante il fit ottenuto mi permetta di validare la legge fisica
> entro gli errori stimati, la somma dei residui mi sembra decisamente
> troppo elevata.
Perché? Quella è la somma dei *quadrati* dei residui.
Quindi la *media* dei quadrati è poco più di 4, e il residuo quadr.
medio è circa 2.
Con gli errori che hai dato, non ti potevi aspettare di meglio.

> Vero, ho troncato Taylor al prim'ordine.
Non è questione di Taylor: è che stai facendo una precisa ipotesi.
Se ne potrebbero fare altre, per es. che l'attrito sia costante.
Tutto dipende da come è fatto il pendolo e soprattutto la sospensione.
sarà dominante la res. dell'aria o l'attrito della sospensione?

Molti anni fa feci delle misure piuttosto precise su un pendolo, e
imparai che solo a piccolissime ampiezze era corretto supporre che la
res. dell'aria fosse proproz. alla velocità.

Hai provato a guardare un plot del log dell'ampiezza in funz. del
tempo?
Io l'ho fatto (coi tuoi dati) e non ti dico che cosa si vede: fallo, e
avrai una sorpresa :-)

> Per l'ampiezza, scostamento angolare dalla verticale: unità
> arbitrarie.
> Non ci è dato sapere che cosa siano. Sicuramente non sono né gradi né
> radianti.
"Ché se potuto aveste saper tutto ..."
Scherzi a parte, ma come c... è fatto 'sto pendolo e il sistema di
misura?
Che senso ha dare il tempo con 5 cifre e l'ampiezza cn 2 cifre al
massimo?

> Ho notato però che tagliando la coda di 5-6 elementi la somma dei
> residui diminuisce drasticamente...
Ci credo :-)
Guarda il grafico che ti ho detto e capirai .


--
Elio Fabri

Giorgio Pastore

unread,
Apr 6, 2015, 5:52:03 PM4/6/15
to
Il 06/04/15 17:32, saturni....@gmail.com ha scritto:
....
> Nonostante il fit ottenuto mi permetta di validare la legge fisica entro gli errori stimati,
> la somma dei residui mi sembra decisamente troppo elevata.
....



Il fit permette di validare la legge fisica ? Mah...
Come ti ha fatto osservare Elio, se dai un' occhiata ai dati su scala
semi-log (ma anche se li guardi direttamente su scala lineare facendo
attenzione ai valori per grandi ascisse) un fit esponenziale puro non
sembra proprio il massimo.

Ma prima di sconvolgere qualche certezza raggiunta a prezzo di faticosi
sforzi, forse e' meglio se spieghi un po' meglio il contesto di questo
fit. Cos'e'. un esercizio di laboratorio ? centrato su che ?

Giorgio

BlueRay

unread,
Apr 7, 2015, 9:23:58 AM4/7/15
to
Il giorno lunedì 6 aprile 2015 18:16:36 UTC+2, saturni....@gmail.com ha scritto:
> > E' un chiquadro francamente eccessivo, come si
> > vede anche dal p-value, penserei che la funzione
> > test utilizzata per il fit non rappresenti correttamente
> > i dati (eventualmente quali, ricavati come?)
>
> Trattasi delle massime ampiezze d'oscillazione
> di un pendolo fisico smorzato.
> La funzione interpolante essendo chiaramente di forma esponenziale
> gnuplot> f(x) = a * exp(-x*b)

... tra circa 3 e circa 47 secondi. Al di fuori di questo intervallo (specialmente per t tra 47 e 72.564 secondi) col cavolo che e' un'esponenziale.

--
BlueRay

ADPUF

unread,
Apr 7, 2015, 12:11:45 PM4/7/15
to
BlueRay 15:23, martedě 7 aprile 2015:

> Il giorno lunedě 6 aprile 2015 18:16:36 UTC+2,
Che sia rumore browniano?


--
AIOE łżł
0 new messages