我试图找到矩阵的逆矩阵,但是,sympy 总是将最终答案乘以 4,从而使答案错误。当我使用因子函数时,也会发生这种乘法。
这是我要更改的矩阵
import sympy as sy
z = sy.symbols('z')
t = sy.Matrix([[z, -1], [sy.Rational(1,4), z + 1]])
t.inv()
真正的答案是相同的,只是不乘以 4。为什么 sympy 会像这样乘以答案?
更新
为了隔离问题,我们可以尝试分解行列式。
如果我们考虑行列式,我希望答案是 (z+1/2)**2 但是这是我得到的答案,它除以 4 和 ,再乘以 2。预期的答案必须是 (z+ 1/2)^2 不是相乘版本的 sympy 输出。
d = t.det()
print("I want to factor this")
display(d)
print("After factoring")
display(sy.factor(d))
print(" \n The right answer I was expecting")
display((z+sy.Rational(1,2))**2)
我正在解决的问题演变了 Z 变换,并且因子的这种乘法使最终答案错误。因子或极点必须与它们完全相同,无需任何乘法,即答案必须完全为 (z+1/2)^2
有没有办法让 sympy 给我确切的因素?

