python定义矩阵内数据类型_尝试创建矩阵时出现TypeError(“无法理解数据类型”)...

我试着用sympy来微分一组方程,我必须用我计算的导数来创建一个2x2矩阵。这是我的代码:#import numpy as np

from numpy import *

from scipy import *

from sympy import *

x1 = 3; x2 = 0; x3 = 0; x4 = 3

y1 = 3; y2 = 3; y3 = 0; y4 = 0

s = Symbol('s')

t = Symbol('t')

N1 = (s+1)*(t+1)/4

N2 = (1-s)*(t+1)/4

N3 = (1-s)*(1-t)/4

N4 = (s+1)*(1-t)/4

x = (x1*N1)+(x2*N2)+(x3*N3)+(x4*N4)

y = (y1*N1)+(y2*N2)+(y3*N3)+(y4*N4)

dxs = diff(x, s)

dxt = diff(x, t)

dys = diff(y, s)

dyt = diff(y, t)

#print type(dxs).__name__

print dxs, dxt, dys, dyt

J = Matrix([dxs, dys], [dxt, dyt])

#J = np.matrix((dxs, dys), (dxt, dyt))

print J

但是,我得到一个“数据类型未找到”错误。所以,我尝试使用type()函数来打印最后得到的导数的数据类型。我有两种不同的类型。当最后的导数只是数字时,type()返回'Rational'。当最终导数中包含变量“s”或“t”时,它返回“Add”(这可以通过为x2、x3、y3和y4指定非零值来实现)。如果有人能帮助我创建这个矩阵,我将非常感谢。我也试过用

^{pr2}$

而不是J = Matrix((dxs, dys), (dxt, dyt))

现在我得到'type'对象没有属性'__getitem__'错误。我对python非常陌生,我已经尽我所能在网上找到解决这个问题的方法,但是我失败了。谢谢你的帮助。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值