Nulpunt Bepalen
1. Numerieke Algoritmen
1.1. Nulpunten
… een beetje meer wiskunde.
Neem er een functie:
def Polynoom(x): return x**2 + 2*x - 1
Hoe kan je de nulpunten op een interval \([x_1, x_2]\) bepalen?
import numpy as NP import matplotlib.pyplot as PLT x = NP.linspace(-3., 1., 401, endpoint = True) y = Polynoom(x) PLT.gca().axhline(0, ls = '-', color = 'k') PLT.plot(x, y, 'k-') PLT.show()
1.2. naïve implementatie
- maak er een functie aan die de interval overloopt
- bij een voortekenwissel geeft de functie de x-waarde terug
Wat zijn er beperkingen bij deze implementatie?
1.3. bisectie
Analogie: nummertjes raden
- Ik kies een geheim nummer tussen 0 en 100, jij moet ze raden.
- Je mag “groter/kleiner”-vragen stellen.
Bisectie: kies het middelpunt van de interval, en vraag of de nummer groter is. Pas de interval dan aan op de juiste helft en herhaal. (zie hier)
Voor nulpunten:
- Vind de functiewaarde aan één rand van het interval.
- Vind het globale minimum en maximum van de functie op dit interval, en splits 1-3 deelintervallen op bij min en max.
- Kies één rand van het deelinterval. Bepaal hier het voorteken.
- Vindt het midden van het interval. Is het voorteken hier anders? Zo ja, ga verder met de eerste helft van dit interval. Zo niet, ga verder met de tweede helft.
- Herhaal, tot dat jouw interwal smaller dan je nauwkeurigheid is (bv. \(\epsilon < 10^{-6}\)).
Wat zijn voordelen en beperkingen van deze methode?
1.4. Newton-Raphson
voor gevoorderden: implementeer de methode van Newton-Raphson.
vorige les \(\quad\) volgende les