[MatLab] Ottimizzazione di un fit di dati

msole891
Gentilissimi,
mi trovo di fronte ad un nuovo problema.
Ho una serie di dati sperimentali da fittare con una funzione teorica (che ha un andamento simil esponenziale).
Ora, vorrei minimizzare i residui tra i punti ottenuti sperimentalmente e quelli dati dalla teoria, nel migliore dei modi possibili (cioè, evitando di trovare minimi locali, ma preferibilmente globali).
La funzione in esame è la seguente:
download/file.php?mode=view&id=1642
Dato che ciò che vorrei minimizzare equivale a f(x)= Y_teorico - Y_sperimentale, ho utilizzato lsqnonlin, con option 'trust-region-reflective', non ottenendo risultati soddisfacenti. I miei dati incogniti sono le D e le gamma.
Avete qualche buona proposta o suggerimenti da adottare? Essendo la funzione abbastanza complessa, neanche la linearizzazione la semplificherebbe.
Spero di essere stata chiara.
Grazie

Risposte
apatriarca
Sarebbe utile vedere il grafico dei punti e del fit per capire per quale ragione ritieni che il risultato non sia soddisfacente. Siccome il metodo potrebbe arrivare a dei minimi locali e non necessariamente globali puoi provare a lanciare il metodo più volte con valori iniziali diversi. In alternativa puoi provare algoritmi diversi.

Un'altra cosa che puoi provare è quella di fare il fitting del logaritmo della funzione (eliminando quindi l'esponenziale e arrivando forse ad un problema di più facile soluzione). Una volta trovata la soluzione potresti usarla come punto di partenza per il fitting della funzione di partenza.

Non c'è insomma una soluzione che va sempre bene ed è difficile darti consigli precisi senza poter sperimentare un po' con i dati.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.