We noemen $$x^*$$ een fixpunt van de reƫle functie $$f(x)$$ indien geldt dat $$f(x^*) = x^*$$.
In deze oefening gaan we op zoek naar een dergelijk fixpunt, startend met een beginschatting $$x_0$$, via volgende
aanpak:
- indien het maximaal aantal iteraties bereikt is, dan is $$x_0$$ het gezochte fixpunt, en keert de functie terug
- indien $$|f(x_0) - x_0| < \epsilon$$, dan is $$x_0$$ het gezochte fixpunt en keert de functie terug
- ken de waarde van $$f(x_0)$$ toe aan $$x_0$$
- verhoog het aantal gebruikte iteraties met 1
- ga naar stap 1
Schrijf de functie fixpunt()
met volgende argumenten:
- de functie waarvan het fixpunt moet bepaald worden
- de beginschatting voor het fixpunt
- de toleratie $$\epsilon > 0$$
- het maximaal toegelaten aantal iteraties $$N$$
Het resultaat van de functie is een tuple, bestaande uit de huidige benadering voor het fixpunt, gevolgd door het aantal
iteraties nodig om de benadering te vinden
LET OP: je code MOET recursief geprogrammeerd worden, en mag dus geen lusconstructies of comprehensies
bevatten.
Voorbeeld
fixpunt(lambda x:math.sin(x), 1.0, 0.001, 100) = (0.18143335721992923, 86)
fixpunt(lambda x:math.sin(x), 1.0, 0.001, 10) = (0.46295789853781183, 10)