De digitale vraagbaak voor het wiskundeonderwijs

home |  vandaag |  gisteren |  bijzonder |  prikbord |  gastenboek |  wie is wie? |  contact

HOME

samengevat
vragen bekijken
een vraag stellen
hulpjes
zoeken
FAQ's
links
twitter
boeken
help

inloggen

colofon

  \require{AMSmath} Printen

Re: Optimalisatie: aanpassing aan meetpunten

 Dit is een reactie op vraag 34117 
Beste Tom (of collega),
De links die je gaf, helpen me niet echt. Ik vind er wel uitleg over functies y(x) die een rechte lijn opleveren en functies die je tot zo'n rechtlijnig verband kunt herleiden, zoals y(x)=2*p*(x/g) of y(x)=a*eb*x. Maar ik kan mijn functie y(x)=b+(a-b)*exp(-c*x) niet 'rechtlijnig' maken vanwege 'b+..'. Zodoende kom ik ook met http://mathworld.wolfram.com/LeastSquaresFittingExponential.html niet verder. Misschien moet ik een geschatte startwaarde van b kiezen; via lineaire regressie de beste bijpassende a en c vinden en dan itereren... maar zijn de uiteindelijke a, b en c dan wel onafhankelijk van geschatte startwaarden? Dank, Jaap

Jaap
Docent - donderdag 4 augustus 2005

Antwoord

Goeiedag

Het is inderdaad onmogelijk deze functie via een trucje lineair te maken. De kleinste-kwadraten-methode minimaliseert de som van de fouten in het kwadraat. Als de fit-functie niet lineair is in de gezochte parameters, kan dit minimum-probleem alleen via iteratieve methodes worden opgelost. Je zal de waarden a,b & c moeten schatten om te gebruiken in de eerste iteratiestap. Als je a, b of c volledig verkeerd schat, is het mogelijk dat de iteratie divergeert of convergeert naar een verkeerd minimum (lokaal minimum). In die zin is de uiteindelijke oplossing altijd afhankelijk van je startwaarden a, b & c. Maar in de praktijk ga je er natuurlijk vanuit dat een redelijke schatting van de parameters volstaat om het absolute minimum (beste fit) te verkrijgen.

Er bestaan verschillende methodes om dergelijke minimum-problemen iteratief op te lossen. Voorbeelden zijn de methodes van Newton, Gauss-Newton & Levenberge-Marguardt. Je gebruikt best voorgedefinieerde code als je deze methodes wil aanwenden. Hier vind je een hele interessante, doch niet eenvoudige, uitleg over hoe je met Matlab een niet-lineaire curve kan fitten.

Nog interessanter is deze website. Daar wordt jouw functie expliciet behandeld en er is zelfs een applet die je de waarden van a,b & c (p1,p2 & p3) uitrekent aan de hand van een iteratieve methode.

Mocht je zelf nog wat willen zoeken op het internet gebruik dan de zoektermen
"nonlinear least square".

Groetjes

Igor
Vragen naar aanleiding van dit antwoord? Klik rechts..!
zondag 7 augustus 2005



klein |  normaal |  groot

home |  vandaag |  bijzonder |  twitter |  gastenboek |  wie is wie? |  colofon

©2001-2020 WisFaq - versie IIb