python解矩阵方程_用numpy求解矩阵方程的误差

本文介绍了如何利用Python的sympy库和numpy库实现Newton-Raphson算法来求解矩阵方程。在执行过程中,遇到了numpy.linalg.solve()函数引发的TypeError错误,该错误通常与矩阵维度不匹配或类型转换问题有关。
摘要由CSDN通过智能技术生成

我正在用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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值