You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否将Sympy生成的矩阵乘法迹符号表达式完全展开为乘积形式?

用Sympy展开矩阵乘法迹的符号表达式
  • 完全展开乘积形式完全可行,Sympy自带的expand()函数可以直接展开符号表达式中的所有乘积项,包括矩阵乘法迹里的各项组合。

举个实际操作的示例:
假设我们定义两个2x2的符号矩阵,计算它们乘积的迹后展开所有乘积:

from sympy import symbols, Matrix, trace, expand

# 定义矩阵元素的符号变量
a11, a12, a21, a22 = symbols('a11 a12 a21 a22')
b11, b12, b21, b22 = symbols('b11 b12 b21 b22')

# 构造符号矩阵
A = Matrix([[a11, a12], [a21, a22]])
B = Matrix([[b11, b12], [b21, b22]])

# 计算矩阵乘积的迹
tr_result = trace(A * B)
# 展开所有乘积项
expanded_tr = expand(tr_result)

print(expanded_tr)
# 输出:a11*b11 + a12*b21 + a21*b12 + a22*b22
  • 针对多矩阵相乘的迹(比如tr(A*B*C)这类复杂组合),同样可以用expand()展开所有乘积:
# 新增第三个符号矩阵
c11, c12, c21, c22 = symbols('c11 c12 c21 c22')
C = Matrix([[c11, c12], [c21, c22]])

tr_abc = trace(A * B * C)
expanded_tr_abc = expand(tr_abc)
print(expanded_tr_abc)
# 输出会是所有矩阵元素乘积的累加形式

如果你的原始迹表达式包含转置、逆矩阵等特殊结构,可以先用Sympy的transpose()、inv()等函数完成矩阵层面的化简,再调用expand()展开所有乘积项。

内容的提问来源于stack exchange,提问作者김재희

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 11:36:44