问题描述
我试图找到矩阵的逆,但是,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-transfrom的演变,并且因数的这种乘积使最终答案是错误的。因子或极点必须准确无误,即答案必须恰好是(z + 1/2)^ 2
有没有办法让sympy给我确切的因素?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)