|
FitNonLineare< polinomi generalizzati | Indice | Fit di una esponenziale più una costante? > Fit non lineare Abbiamo visto esempi di fit di leggi lineari nei parametri, ad esempio il fit di una legge polinomiale per la quale i parametri del fit sono i coefficienti di ciascun termine del polinomio. In questo caso abbiamo mostrato che, con il criterio della massima verosimiglianza applicato agli scarti quadrati si ottengono i valori più probabili dei parametri attraverso un sistema lineare. Viceversa può darsi che la legge prevista non sia lineare nei parametri, ad esempio nel caso di {$y=A sin(\omegat)$}, in cui si considera {$t$} come variabile indipendente, {$y$} come variabile dipendente e {$A, \omega$} come parametri.
In questi casi si può ricorrere alla minimizzazione della funzione χ2 per via numerica. Illustreremo in questo capitolo l'utilizzo della libreria Minuit, sviluppata al CERN da F. James, e integrata all'interno di matlab come funzione Invece che descrivere in dettaglio il funzionamento dei diversi comandi di MINUIT, per i quali rimandiamo alla descrizione originale del CERN, daremo qui una spiegazione semplificata basandoci sui concetti introdotti per il fit polinomiale. Il problema consiste nel cosiderare la funzione: {$ \chi^2(a_1, \cdots ,a_M) = \sum_{i=1}^N \frac {(y_i-y(a_1, \cdots,a_M))^2} {\sigma_i^2} $} e trovare il punto {$(a_1, \cdots ,a_M)$}, che ne identifica il minimo assoluto. Il più semplice degli algoritmi per trovare numericamente il minimo di una funzione consiste nel metodo della pendenza massima (steepest descent), che risale a Newton: la funzione di cui si vuole il minimo è nota per ogni valore dei parametri ed è quindi possibile, anche in assenza delle sue derivate analitiche, stimarne numericamente le derivate rispetto ai parametri, ovvero la funzione gradiente. Il gradiente di {$\chi^2$} è un vettore nello spazio dei parametri che ha per componenti: {$ {\left( \nabla \chi^2 \right)}_{a_j} = \frac {\partial \chi^2} {\partial a_j}, $} la cui approssimazione a passi finiti è data da: {$ \frac {\chi^2(a_1, \cdots ,a_j+da_j, \cdots ,a_M)- \chi^2(a_1, \cdots ,a_j, \cdots ,a_M)} {da_j} $} Questo vettore è orientato nella direzione di massima pendenza e, se seguito passo dopo passo, conduce al minimo, anche se non è in genere detto che il minimo trovato in questo modo sia un mimimo assoluto. La condizione di minimo è segnalata dal fatto che tutte le componenti del gradiente sono nulle. La strategia della massima pendenza è implementata in MINUIT dal comando Vedremo nel seguito un sottoinsieme essenziale di questi comandi ed il metodo per invocare la libreria dall'interno di matlab. < polinomi generalizzati | Indice | Fit di una esponenziale più una costante? > |