gpt4 book ai didi

python - symPy 中的 inv() 没有返回正确的值

转载 作者:太空宇宙 更新时间:2023-11-04 09:08:24 29 4
gpt4 key购买 nike

我有一个 MutableDenseMatrix,Qtheta1theta2 是 SymPy 类型的 symbol

In[12]:  Q
Out[12]: [cos(theta1), -sin(theta1), 0, 0]
[sin(theta1), cos(theta1), 0, 0]
[ 0, 0, 1, 980]
[ 0, 0, 0, 1]

当我调用逆函数时,我得到:

In[13]:  Q_inv=Q.inv()
Out[13]: [-sin(theta1)**2/cos(theta1) + 1/cos(theta1), sin(theta1), 0, 0]
[ -sin(theta1), cos(theta1), 0, 0]
[ 0, 0, 1, -980]
[ 0, 0, 0, 1]

什么时候我应该得到的是:

Out[X]:  [cos(theta1),  sin(theta1),  0,    0]
[-sin(theta1), cos(theta1), 0, 0]
[ 0, 0, 1, -980]
[ 0, 0, 0, 1]

对这里可能出现的问题有什么想法吗?

最佳答案

这实际上并没有错。在您的第一个矩阵条目中,您的输出中有 -sin(theta1)**2/cos(theta1) + 1/cos(theta1)cos(theta1)在预期的结果中,实际上,由于 1 - sin(theta1)**2 = cos(theta1)**2 标准三角恒等式,它们是等价的。

sympy 有一个名为 trigsimp 的函数,可以将方程化简为您想要的形式。

>>> Q
[cos(theta1), -sin(theta1), 0, 0],
[sin(theta1), cos(theta1), 0, 0],
[ 0, 0, 1, 980],
[ 0, 0, 0, 1]
>>> Q.inv()
[-sin(theta1)**2/cos(theta1) + 1/cos(theta1), sin(theta1), 0, 0],
[ -sin(theta1), cos(theta1), 0, 0],
[ 0, 0, 1, -980],
[ 0, 0, 0, 1]
>>>
>>> sympy.trigsimp(Q.inv())
[ cos(theta1), sin(theta1), 0, 0],
[-sin(theta1), cos(theta1), 0, 0],
[ 0, 0, 1, -980],
[ 0, 0, 0, 1]

关于python - symPy 中的 inv() 没有返回正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17823141/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com