D'abord, lisez ceci: Fixed point iteration:Applications
J'ai choisi la méthode de Newton.
Maintenant, si vous souhaitez en savoir plus sur les fonctions de générateur, vous pouvez définir une fonction de générateur, et par exemple un objet générateur comme suit
def newtons_method(n):
n = float(n) #Force float arithmetic
nPlusOne = n - (pow(n,3) + n - 1)/(3*pow(n,2) +1)
while 1:
yield nPlusOne
n = nPlusOne
nPlusOne = n - (pow(n,3) + n - 1)/(3*pow(n,2) +1)
approxAnswer = newtons_method(1.0) #1.0 can be any initial guess...
Ensuite, vous pouvez gagner successivement de meilleures approximations en appelant:
approxAnswer.next()
voir: PEP 255 ou Classes (Generators) - Python v2.7 pour plus d'informations sur les générateurs
par exemple
approx1 = approxAnswer.next()
approx2 = approxAnswer.next()
Ou mieux encore utiliser une boucle! Comme pour décider quand votre approximation est assez bon ...;)
Qu'avez-vous jusqu'à présent? – SingleNegationElimination
Lisez ceci pour commencer: http://en.wikipedia.org/wiki/Fixed_point_%28mathematics%29 Bien qu'il soit difficile à comprendre, il est assez simple à mettre en œuvre. – ruslik