我试图找到矩阵的逆矩阵,但是 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 给我确切的因素?
翻翻过去那场雪
相关分类