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

如何让Sympy识别矩阵代数恒等式并输出True?

让Sympy识别矩阵代数恒等式的方法

Sympy直接使用==比较符号矩阵表达式时,不会自动执行代数化简操作,因此无法直接识别I - A@(A+I).inv() == (A+I).inv()这类恒等式。需要通过手动化简表达式后再进行相等性判断。

解决方案1:使用simplify函数化简后比较

通过sympy.simplify对等式两边的表达式分别化简,再验证是否相等:

from sympy import symbols, Identity, MatrixSymbol, simplify

d = symbols("d")
I = Identity(d)
A = MatrixSymbol("A", d, d)

# 定义等式两边的表达式
left_expr = I - A @ (A + I).inv()
right_expr = (A + I).inv()

# 化简两边表达式
simplified_left = simplify(left_expr)
simplified_right = simplify(right_expr)

# 输出比较结果
print(simplified_left == simplified_right)  # 结果为True

解决方案2:通过等式变形验证

将原等式两边同时左乘A+I,转化为更易验证的形式:(A+I)(I - A(A+I)⁻¹) = I,直接验证该式是否成立:

from sympy import symbols, Identity, MatrixSymbol, simplify

d = symbols("d")
I = Identity(d)
A = MatrixSymbol("A", d, d)

left_expr = I - A @ (A + I).inv()
# 验证左乘(A+I)后是否等于单位矩阵I
print(simplify((A + I) @ left_expr) == I)  # 结果为True

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 17:35:58