Решите это уравнение с итерацией с фиксированной точкой - PullRequest
9 голосов
/ 01 декабря 2010

Как я могу решить это уравнение

x 3 + x - 1 = 0

с использованием итерации с фиксированной точкой?

Существует ли какой-либо код с фиксированной точкой кода (особенно в Python), который я могу найти в Интернете?

Ответы [ 2 ]

12 голосов
/ 01 декабря 2010

Использование 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].

2 голосов
/ 01 декабря 2010

Попробуйте библиотеку SymPy .Вот соответствующий пример :

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

Я не уверен, какой алгоритм использует SymPy для решения уравнения.

...