Om nulpunten van de functie $$f$$ te vinden, zijn verschillende algoritmen voorhanden, waaronder het bisectie-algoritme. Een probleem bij dit algoritme is dat je als startpunt over de waarde $$x_1$$ en $$x_2$$ moet beschikken, waarvoor geldt dat $$f(x_1)f(x_2)<0$$. Hier programmeren we een strategie om, uitgaande van een beginschatting van een nulpunt $$x_0$$ dergelijke waarde $$x_1$$ en $$x_2$$ te vinden.

De strategie gaat als volgt:

  1. neem een startwaarde voor de parameter $$h > 0$$
  2. bereken $$s = f(x_0 + h)*f(x_0 - h)$$
  3. indien $$s >= 0$$ verdubbel je $$h$$
  4. je herhaalt de vorige 2 stappen tot ofwel een maximum aantal iteraties bereikt is, of $$s < 0$$.

Programmeer de functie insluiten() met als argumenten:

Het resultaat van de functie is:

Voorbeeld

print(insluiten(lambda x:x**2-2, 4, 0.01, 100)) #(-1.12, 9.12)
print(insluiten(lambda x:x**2+4, 4, 0.01, 100)) #(4.0, 4.0)