9

この方程式を解くにはどうすればよいですか

x 3 + x - 1 = 0

固定小数点反復を使用していますか?

オンラインで見つけることができる固定小数点反復コード (特に Python) はありますか?

4

2 に答える 2

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

Python コードの定義fixed_pointは 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'>

現在のソース コードは、ドキュメント ページに移動してリンクをクリックするとfixed_point、オンラインで見つけることができます。[source]

于 2010-12-01T16:24:33.650 に答える
2

SymPyライブラリを試してください。関連する例を次に示します。

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

ただし、SymPy が方程式を解くためにどのアルゴリズムを使用するかはわかりません。

于 2010-12-01T16:23:01.690 に答える