In questa sezione partiremo da due vettori xdata1, ydata1 di dati empirici, e calcoleremo i coefficienti della retta e della parabola che meglio approssimano i dati (che rendono minima la somma dei quadrati degli scarti). Supporremo che il vettore ydata1 sia fornito di un vettore s di stime di errori.
Eseguiremo i calcoli passo passo, anzichè invocare il comando "Fit" di Mathematica. I coefficienti della retta e della parabola saranno calcolati come soluzioni di due equazioni matriciali A1.X1 = B1 e A2.X2 = B2.
Le matrici A1, A2, B1, B2 sono date dalle seguenti formule:
A1 =
B1 =
A2 =
B2 =
Come esempio scegliamo:
xdata1 = {31.2, 41.2, 51.2, 61.2, 71.2, 81.2, 91.2, 101.2, 111.2}
ydata1 = {60.24, 58.62, 57.61, 61.57, 30.57, 57.24, 57.58, 58.28, 59.27}
s = {0.01, 0.02, 0.02, 0.01, 0.03, 0.01, 0.02, 0.01,0.02}.
In questa sezione è opportuno disporre del pacchetto LinearAlgebra`MatrixManipulation`.
![[Graphics:../Images/index_gr_55.gif]](../Images/index_gr_55.gif)
Inseriamo ora i vettori xdata1, ydata1 dei dati empirici, e il vettore s delle deviazioni standard o barre di errori. Calcoliamo il numero numpt di elementi: deve essere lo stesso per tutti e tre i vettori.
![[Graphics:../Images/index_gr_56.gif]](../Images/index_gr_56.gif)
![[Graphics:../Images/index_gr_58.gif]](../Images/index_gr_58.gif)
![[Graphics:../Images/index_gr_61.gif]](../Images/index_gr_61.gif)
![[Graphics:../Images/index_gr_63.gif]](../Images/index_gr_63.gif)
![[Graphics:../Images/index_gr_65.gif]](../Images/index_gr_65.gif)
Carichiamo la matrice A1 dei coefficienti.
![[Graphics:../Images/index_gr_66.gif]](../Images/index_gr_66.gif)
Calcoliamo la matrice inversa di A1.
![[Graphics:../Images/index_gr_68.gif]](../Images/index_gr_68.gif)
Carichiamo la matrice B1 dei termini noti.
![[Graphics:../Images/index_gr_70.gif]](../Images/index_gr_70.gif)
Calcoliamo il vettore X1 soluzione di A1.X1 = B1. X1 è il vettore dei coefficienti della retta "best fit".
![[Graphics:../Images/index_gr_72.gif]](../Images/index_gr_72.gif)
Per disegnarei valori sperimentali con barra di errore dobbiamo prima caricare il pacchetto Graphics`MultipleListPlot`.
![[Graphics:../Images/index_gr_74.gif]](../Images/index_gr_74.gif)
![[Graphics:../Images/index_gr_75.gif]](../Images/index_gr_75.gif)
![[Graphics:../Images/index_gr_77.gif]](../Images/index_gr_77.gif)
![[Graphics:../Images/index_gr_79.gif]](../Images/index_gr_79.gif)
![[Graphics:../Images/index_gr_81.gif]](../Images/index_gr_81.gif)
Calcoliamo i coefficienti a, b della retta best fit e disegniamone il grafico ff1.
![[Graphics:../Images/index_gr_84.gif]](../Images/index_gr_84.gif)
![[Graphics:../Images/index_gr_87.gif]](../Images/index_gr_87.gif)
![[Graphics:../Images/index_gr_89.gif]](../Images/index_gr_89.gif)
Confrontiamo i valori sperimentali e la curva best fit ottenuta (sovrapponiamo i grafici con il comando Show[.]).
![[Graphics:../Images/index_gr_92.gif]](../Images/index_gr_92.gif)
Calcoliamo il valore di .
![[Graphics:../Images/index_gr_96.gif]](../Images/index_gr_96.gif)
Calcoliamo il valore della devianza standard empirica di y (dividiamo per numpt-3 anzichè per numpt).
![[Graphics:../Images/index_gr_99.gif]](../Images/index_gr_99.gif)
![[Graphics:../Images/index_gr_101.gif]](../Images/index_gr_101.gif)
In questa sezione è opportuno disporre del pacchetto LinearAlgebra`MatrixManipulation`.
![[Graphics:../Images/index_gr_103.gif]](../Images/index_gr_103.gif)
Inseriamo ora i vettori xdata1, ydata1 dei dati empirici, e il vettore s delle deviazioni standard o barre di errori. Calcoliamo il numero numpt di elementi: deve essere lo stesso per tutti e tre i vettori.
![[Graphics:../Images/index_gr_104.gif]](../Images/index_gr_104.gif)
![[Graphics:../Images/index_gr_106.gif]](../Images/index_gr_106.gif)
![[Graphics:../Images/index_gr_108.gif]](../Images/index_gr_108.gif)
![[Graphics:../Images/index_gr_110.gif]](../Images/index_gr_110.gif)
![[Graphics:../Images/index_gr_112.gif]](../Images/index_gr_112.gif)
Carichiamo la matrice A2 dei coefficienti.
![[Graphics:../Images/index_gr_113.gif]](../Images/index_gr_113.gif)
Calcoliamo la matrice inversa di A2.
![[Graphics:../Images/index_gr_115.gif]](../Images/index_gr_115.gif)
Carichiamo la matrice B2 dei termini noti.
![[Graphics:../Images/index_gr_117.gif]](../Images/index_gr_117.gif)
Calcoliamo il vettore X2 soluzione di A2.X2 = B2. X2 è il vettore dei coefficienti della parabola "best fit".
![[Graphics:../Images/index_gr_119.gif]](../Images/index_gr_119.gif)
Per disegnarei valori sperimentali con barra di errore dobbiamo prima caricare il pacchetto Graphics`MultipleListPlot`.
![[Graphics:../Images/index_gr_121.gif]](../Images/index_gr_121.gif)
![[Graphics:../Images/index_gr_122.gif]](../Images/index_gr_122.gif)
![[Graphics:../Images/index_gr_124.gif]](../Images/index_gr_124.gif)
![[Graphics:../Images/index_gr_126.gif]](../Images/index_gr_126.gif)
![[Graphics:../Images/index_gr_128.gif]](../Images/index_gr_128.gif)
Calcoliamo i coefficienti a, b, c della parabola best fit e disegniamone il grafico ff2.
![[Graphics:../Images/index_gr_131.gif]](../Images/index_gr_131.gif)
![[Graphics:../Images/index_gr_135.gif]](../Images/index_gr_135.gif)
![[Graphics:../Images/index_gr_137.gif]](../Images/index_gr_137.gif)
Confrontiamo i valori sperimentali e la curva best fit ottenuta (sovrapponiamo i grafici con il comando Show[.]).
![[Graphics:../Images/index_gr_140.gif]](../Images/index_gr_140.gif)
Calcoliamo il valore di .
![[Graphics:../Images/index_gr_144.gif]](../Images/index_gr_144.gif)
Calcoliamo il valore della devianza standard empirica di y (dividiamo per numpt-3 anzichè per numpt).
![[Graphics:../Images/index_gr_146.gif]](../Images/index_gr_146.gif)
![[Graphics:../Images/index_gr_148.gif]](../Images/index_gr_148.gif)