Solve this equation with fixed point iteration
Using 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
The Python code defining fixed_point
is in scipy/optimize/minpack.py. The exact location depends on where scipy
is installed. You can find that out by typing
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'>
The current fixed_point
source code can be found online by going to the documentation page and clicking the [source]
link.
Try the SymPy library. Here's a relevant example:
>>> solve(x**3 + 2*x**2 + 4*x + 8, x)
[-2*I, 2*I, -2]
I'm not sure which algorithm SymPy uses to solve the equation, though.