0

我被要求编写一个程序来使用定点迭代来求解这个方程( x^3 + x -1 = 0 )。

定点迭代的算法是什么?Python中是否有任何定点迭代代码示例?(不是来自任何模块的函数,而是带有算法的代码)

谢谢你

4

2 回答 2

1

首先,阅读以下内容: 定点迭代:应用程序

我选择了牛顿法。

现在如果你想了解生成器函数,你可以定义一个生成器函数,并实例化一个生成器对象,如下所示

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()

或者更好的是使用循环!

至于决定你的近似值何时足够好......;)

于 2010-12-02T02:13:19.060 回答
0

伪代码在这里,您应该能够从那里弄清楚。

于 2010-12-02T02:03:44.160 回答