我正在用Python编写自己的Newton-Raphson算法,使用sympy和numpy。
代码如下,但您可以忽略此问题并跳到错误:
代码def newtonRhapson(fncList, varz, x0):
jacob = []
for fnc in fncList:
vec = []
for var in varz:
res = fnc.diff(var)
for i in range(len(varz)):
res = res.subs(varz[i], x0[i])
vec.append(res)
jacob.append(numpy.array(vec, dtype='float64'))
fx0=[]
for fnc in fncList:
res2 = fnc
for i in range(len(varz)):
res2 = res2.subs(varz[i], x0[i])
fx0.append(res2)
j = jacob
f = fx0
print j
print ''
print f
print numpy.linalg.solve(j,f).tolist()
函数的参数是:
fncList-使用Sympy符号的python函数列表
varz-包含这些符号(变量)的列表
x0-初始猜测
错误
直到我们printj和f工作正常并打印以下内容:[array([-9.1337868