用定点迭代求解这个等式

时间:2010-12-01 16:17:57

标签: python equation fixed-point nonlinear-functions numerical-analysis

我该如何解决这个等式

  

x 3 + x - 1 = 0

使用定点迭代?

是否有任何定点迭代代码(特别是在Python中)我可以在网上找到?

2 个答案:

答案 0 :(得分:12)

使用scipy.optimize.fixed_point

import scipy.optimize as optimize

def func(x):
    return -x**3+1

# This finds the value of x such that func(x) = x, that is, where
# -x**3 + 1 = x
print(optimize.fixed_point(func,0))
# 0.682327803828

定义fixed_point的Python代码位于scipy / optimize / minpack.py中。具体位置取决于scipy的安装位置。您可以通过键入

找到它
In [63]: import scipy.optimize

In [64]: scipy.optimize
Out[64]: <module 'scipy.optimize' from '/usr/lib/python2.6/dist-packages/scipy/optimize/__init__.pyc'>

可以通过转到documentation page并点击fixed_point链接在线找到当前[source]源代码。

答案 1 :(得分:2)

试用SymPy库。这是一个relevant example

>>> solve(x**3 + 2*x**2 + 4*x + 8, x)
[-2*I, 2*I, -2]

我不确定SymPy使用哪种算法来解决这个问题。