有没有办法在Sympy中混合使用矩阵符号和标量符号?
我想制作一个以矢量和标量为例的标量函数:
import sympy as sy
v=sy.MatrixSymbol('v',3,1)
f=v.T*v+5
我收到一条错误消息: TypeError:矩阵和标量符号的混合
我知道我可以为我要做的每个点产品使用一个符号,但这不是很优雅。
答案 0 :(得分:3)
sympy代码检查包含矩阵的加法运算(和)中的所有符号是否为矩阵。这就是你收到错误的原因。
您可以通过以下方式规避这一点:
>>> v.T*v + 5*sym.Identity(1)
# 5*I + v'*v
如果您打算经常执行此操作,您可能需要考虑将其更改为lambda表达式等。