Ik probeer de bissectiemethode voor het benaderen van nulwaarden van een functie te programmeren. In de huidige versie van mijn programma laat ik het interval tussen de startwaarden A en B steeds halveren door een midden M te berekenen, zolang abs(B-A)>E, waarbij E een door de gebruiker gekozen absolute nauwkeurigheid is. Veel (betrouwbare) bronnen gebruiken echter "... zolang abs(B-A)>2E". Ik begrijp niet waar die 2 vandaan komt en dit lijkt ook minder nauwkeurige resultaten op te leveren. Welk criterium gebruik ik het best?
Beste Flor,
Dat komt omdat de bisectiemethode een eerste orde methode is. De convergentiesnelheid van iteratieve methoden wordt gemeten aan de hand van haar convergentieorde. Een rij van iteraties xn convergeert naar de oplossing x volgens orde p indien een constante c>0 bestaat zodat:
|xn-x|<c|xn-1-x|p
Voor de bisectiemethode kan je aantonen dat de constante c die we zoeken 1/2 is omdat het zoekinterval per iteratieslag gehalveerd wordt. Als je een bepaalde toleratie E instelt die aangeeft wanneer je oplossing voldoende nauwkeurig is, dan betekent dit dat de volgende stap voldoet aan:
|xn-x|<(1/2)|xn-1-x|
De volgende stap voldoet aan de tolerantie E zodat het stopcriterium luidt:
E<(1/2)|xn-1-x| of xn-1-x|>2E
Hopelijk beantwoordt dit je vraag. Je vindt in bijlage nog een stukje van mijn cursus numerieke wiskunde over de bisectiemethode.
Groetjes,
Kurt.
Er zijn nog geen reacties op deze vraag.
Enkel de vraagsteller en de wetenschapper kunnen reageren op een antwoord.