Sympy乘以答案改变它并使其错误

问题描述

我试图找到矩阵的逆,但是,sympy总是将最终答案乘以4,从而使答案错误。当我使用因子函数时,也会发生这种乘法。

这是我要更改的矩阵


import sympy as sy
z = sy.symbols('z')

t = sy.Matrix([[z,-1],[sy.Rational(1,4),z + 1]])
t.inv()

这是它给出的“错误”答案

enter image description here

真正的答案是相同的,只是不乘以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)

enter image description here

我要解决的问题是Z-transfrom的演变,并且因数的这种乘积使最终答案是错误的。因子或极点必须准确无误,即答案必须恰好是(z + 1/2)^ 2

有没有办法让sympy给我确切的因素?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)