我被要求编写一个程序来使用定点迭代来求解这个方程( x^3 + x -1 = 0 )。
定点迭代的算法是什么?Python中是否有任何定点迭代代码示例?(不是来自任何模块的函数,而是带有算法的代码)
谢谢你
我被要求编写一个程序来使用定点迭代来求解这个方程( x^3 + x -1 = 0 )。
定点迭代的算法是什么?Python中是否有任何定点迭代代码示例?(不是来自任何模块的函数,而是带有算法的代码)
谢谢你
首先,阅读以下内容: 定点迭代:应用程序
我选择了牛顿法。
现在如果你想了解生成器函数,你可以定义一个生成器函数,并实例化一个生成器对象,如下所示
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...
然后,您可以通过调用以下方法获得更好的近似值:
approxAnswer.next()
有关生成器的更多信息,请参阅:PEP 255或类(生成器)- Python v2.7
例如
approx1 = approxAnswer.next()
approx2 = approxAnswer.next()
或者更好的是使用循环!
至于决定你的近似值何时足够好......;)
伪代码在这里,您应该能够从那里弄清楚。