矩阵和标量符号的混合

Joã*_*tes 5 python matrix symbolic-math sympy

有没有办法在 Sympy 中混合矩阵符号和标量符号?

我想创建一个采用向量和标量的标量函数,例如:

import sympy as sy
v=sy.MatrixSymbol('v',3,1)
f=v.T*v+5
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息:TypeError:矩阵和标量符号的混合

我知道我可以为我要做的每个点积使用一个符号,但这不是很优雅。

Oli*_* W. 5

sympy 代码检查涉及矩阵的加法运算(求和)中的所有符号是否都是矩阵。这就是你收到错误的原因。

您可以通过执行以下操作来规避此问题:

>>> v.T*v + 5*sym.Identity(1)
# 5*I + v'*v
Run Code Online (Sandbox Code Playgroud)

如果您打算经常执行此操作,您可能需要考虑将其更改为 lambda 表达式等。