De halveringsmethode is een algoritme voor het oplossen van vergelijkingen. Het principe is eenvoudig en de methode is gemakkelijk op een computer te implementeren. De methode vertoont overeenkomsten met binair zoeken binnen een rij gegevens. De halveringsmethode kan bijvoorbeeld worden gebruikt om de nulpunten van een functie te bepalen.
Nulpunt bepalen
- Stel de te bereiken nauwkeurigheid vast.
- Bepaal een interval waarin een oplossing van de vergelijking ligt, noem dat .
- Bepaal of de oplossing zich links of rechts van het midden van het interval bevindt. Dat komt neer op het bepalen van .
- Zoek dan verder in het deelinterval waar de oplossing in ligt. Bij elke iteratie wordt de lengte van het interval waarin verder gezocht wordt de helft kleiner. Ga hiermee door tot de gewenste nauwkeurigheid is bereikt.
De methode convergeert dus in ieder geval, maar een belangrijk nadeel is dat deze convergentie langzaam gaat.
Voorbeeld
Worteltrekken is geen elementaire operatie zoals optellen of vermenigvuldigen. Wortels moeten in de praktijk altijd worden benaderd met een iteratief algoritme of een rij. Een voorbeeld toont de benadering van met de halveringsmethode. Voor het benaderen van wortels zijn er efficiëntere methoden dan de halveringsmethode.
Het berekenen van de derdemachtswortel wordt vertaald in het oplossen van de vergelijking
Duidelijk is dat , dus een eerste benadering is
Aangezien , ligt dus in de linkerhelft: . De procedure wordt nu herhaald en als tweede benadering krijgt men
Nu is , dus ligt in de rechterhelft: . Zo gaat men door:
Dan blijkt: . Dus wordt
Omdat voor de gezochte waarde geldt dat , zal voorlopig steeds in de linkerhelft van de komende intervallen liggen:
Nu duikt men onder , wat door berekening van de derde macht is vast te stellen, dus
Nu ligt de benadering er weer boven:
Men gaat zo door tot de gewenste nauwkeurigheid is bereikt.
Toepasbaarheid
Deze methode is eigenlijk alleen zinvol wanneer de methode van Newton of regula falsi niet kunnen worden gebruikt, bijvoorbeeld als er veel oplossingen dicht bij elkaar liggen, wat die methoden kan ontregelen, of wanneer de startwaarden te ver van de oplossing af liggen. Als de gewenste nauwkeurigheid niet al te groot is, kan de halveringsmethode ook sneller zijn omdat per stap minder rekenwerk nodig is.
Uit het bovenstaande voorbeeld leren we dat we de methode kunnen toepassen voor het oplossen van een vergelijking van de vorm , als we een interval hebben waarin de/één oplossing ligt en alle functiewaarden links van de oplossing kleiner óf groter zijn dan alle functiewaarden rechts van de oplossing. Als continu is op en en (of andersom) is er volgens de tussenwaardestelling gegarandeerd ten minste een nulpunt.
Pseudocode
De halveringsmethode in pseudocode:
const d = .... var a, b, m; a, b ← A, B; ZOLANG (b - a) > d m ← (a + b) / 2 ALS f(m)*f(a) < 0 DAN b ← m ANDERS a ← m HERHAAL schatting ← (a + b) / 2