Recent Changes · Search:

Dispense


Navigation Tips - Dritte


PmWiki

pmwiki.org

edit SideBar

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 fminuit da G. Allodi.

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 MIGRAD. Strategie numeriche alternative (SEEK, IMPROVE) prevedono salti casuali per allontanarsi nell'esplorazione da eventuali minimi locali secondari.

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? >

Edit - History - Print - PDF - Recent Changes - Search
Page last modified on January 17, 2008, at 09:56 AM