Schrijf de functie
bisectie()
met als argumenten:
-
f
: te onderzoeken functie
-
x1
: eerste schatting voor nulpunt
-
x2
: tweede schatting voor nulpunt
-
h
: nauwkeurigheid op nulpunt, default $$10^{-3}$$, het algoritme stopt zodra de lengte van het zoekinterval kleiner wordt dan $$h$$.
Het resultaat is het nulpunt van de functie dat je via het bisectie-algoritme identificeert.
Indien
f(x1)*f(x2) > 0
levert de functie de waarde
math.nan
(om aan te geven dat het algoritme faalde wegens foute begincondities).
Het bisectie-algoritme stopt zodra het zoekinterval kleiner wordt dan $$h$$.
Voorbeeld
f = eval('lambda x:(x+3)*(x-2)*(x-8)')
nul = bisectie(f, -5, 0, h = 0.001)
print(round(nul, 4)) #-2.9999