Я codig NewtonRaphson алгоритм в Python с использованием библиотеки SymPy, это моя реализация алгоритма:Оценка символической дифференциации с SymPy в Python
def NewtonRaphson(fx,p0,tolerancia,iteracionesMaximas):
print
fx = S(fx)
x = Symbol('x')
i = 1
p = 0.0
while i<= iteracionesMaximas:
y = fx.subs(x,p0)
yy = diff(fx,x).subs(x,p0)
p = p0 - (y/yy)
if absolute(p-p0) < tolerancia:
print "Se encontró la raíz y={raiz} luego de {n} iteraciones".format(raiz=p, n=i-1)
return
i += 1
print "{i}\t{p}\t{p0}".format(i=i-1,p=p,p0=p0)
p = p0
print "El método falló luego de {i} iteraciones".format(i=i-1)
я получить рейз Wich следующее сообщение:
line 18, in NewtonRaphson
yy = diff(fx,x).subs(x,p0)
File "/usr/local/lib/python2.7/dist-packages/numpy/lib/function_base.py", line 984, in diff
if n < 0:
File "/usr/local/lib/python2.7/dist-packages/sympy/core/relational.py", line 226, in __nonzero__
raise TypeError("symbolic boolean expression has no truth value.")
TypeError: symbolic boolean expression has no truth value.
Я вызываю функцию fx
строку, равную 'x**3-x-1'
, и введите вызов NewtonRaphson(fx,1.7,10**(-4),17)
.
В чем я ошибаюсь?
Показать весь трафик. – user2357112
Какова ценность 'fx'? – user2357112
Я называю x как '' x ** 3-x-1'' – diegoaguilar