Hvordan skrive kode for Marquardt Algoritme

Den Levenberg-Marquardt algoritmen er en metode som brukes i informatikk og matematikk for å finne den lokale minimum av en funksjon uttrykkes som en sum av minste kvadraters av ikke-lineære funksjoner. Det er ofte brukt for å løse lineære regresjonslinjer problemer og å finne minimum av funksjoner som kan bli representert som en sum av minste kvadrater, samt en optimaliserer for funksjoner som ikke kan spaltes til minste kvadraters metode. Algoritmen er iterativ, noe som betyr at det holder å gjenta inntil en stopper betingelse er oppfylt, som er tatt for å være den optimale løsningen. Du kan skrive kode for Levenberg-Marquardt algoritmen bruker funksjonene i Matlab, eller ved å bruke funksjoner eksponert i løsninger skrevet i Fortran og C ++.

Bruksanvisning

1 Start "Matlab" program. "Matlab", eller Matrix Laboratory, er en matematisk program som er spesielt nyttig for å løse minste kvadraters ligninger. Det fungerer som et programmeringsspråk for matematiske programmer og inneholder funksjoner som er spesielt utviklet for Levenberg-Marquardt algoritmen.

2 Skriv kode for å bruke lsqnonlin funksjon i "Matlab" for å løse ikke-lineære minste kvadraters problemer med å bruke Levenberg-Marquardt algoritmen. Ifølge MathWorks dokumentasjon, er syntaksen:
x = lsqnonlin (moro, x0)

Funksjonen starter ved punkt "x0" og finner et minimum av summen av kvadratene av de funksjonene som er beskrevet i "morsomt". For å bruke denne funksjonen spesielt for Levenberg-Marquardt algoritmen, bruk "ScaleProblem" i funksjonsdefinisjonen.

3 Skriv kode for å bruke fsolve funksjon i "Matlab" for å løse systemer av lineære ligninger ved å bruke Levenberg-Marquardt algoritmen. Ifølge MathWorks dokumentasjon, er syntaksen:

x = fsolve (moro, x0)
x = fsolve (moro, x0, opsjoner)

Funksjonen finner en rot (null) i et system av lineære ligninger ved å starte på et punkt, x0, og iterativt prøver å løse problemene i funksjonen "moro." For å bruke denne funksjonen spesielt for Levenberg-Marquardt algoritmen, bruker ScaleProblem alternativ i funksjonsdefinisjonen.

4 Start din C ++ redaktør og bruke den til å skrive kode for å bruke Levmar funksjoner for å løse lineære og ikke-lineære problemer med å bruke Levenberg-Marquardt algoritmen. De Llevmar funksjoner er fritt tilgjengelig under GNU General Public License, og er utviklet for å være kompatibel med "Matlab" og flere vanlige programmeringsspråk. De Levmar funksjoner er skrevet i C ++ og avsløre funksjoner og kode for anstrengt og ubegrenset optimalisering. Du kan endre koden som passer dine behov og for å tilpasse den til å passe til din gjennomføring av Levenberg-Marquardt algoritmen.