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

如何在SymPy中展开矩阵表达式?强制展开平方项方法咨询

SymPy展开矩阵表达式平方的解决办法

直接用sym.expand()搞不定矩阵符号的平方展开?那是因为SymPy默认不会把多项式乘法的分配律套用到矩阵运算上。要强制展开,有两种简单方法:

方法一:给expand()加multinomial参数

在调用expand()时指定multinomial=True,显式让SymPy启用多项式展开规则:

import sympy as sym

A = sym.MatrixSymbol('A', 5, 3)
E = sym.MatrixSymbol('E', 5, 3)
expr = (A*A.T + E*E.T)**2
expanded_expr = sym.expand(expr, multinomial=True)
print(expanded_expr)

执行后会得到展开结果:A*A.T*A*A.T + A*A.T*E*E.T + E*E.T*A*A.T + E*E.T*E*E.T

方法二:用expand_mul()函数

把平方写成直接的乘积形式,再调用expand_mul()专门处理乘法展开:

import sympy as sym

A = sym.MatrixSymbol('A', 5, 3)
E = sym.MatrixSymbol('E', 5, 3)
expanded_expr = sym.expand_mul((A*A.T + E*E.T)*(A*A.T + E*E.T))

这种方式也能得到完全展开的矩阵表达式。

内容的提问来源于stack exchange,提问作者Rastapopoulos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 21:44:51