在Python中使用转换矩阵 - 数值精度错误

时间:2017-06-27 10:32:14

标签: python-2.7 numpy numerical-computing

所以不需要查看所有代码,但基本上我有一个初始点:

import numpy as np

point = np.array([3.0000, 8.0000, 0.0000])

我还有一个转换矩阵M,它可以很好地工作,只需要将点转换为X轴,这会产生以下结果:

[-5.09901951  0.          0.        ] // which is perfectly what I need it to be

通常在我的代码中,我需要在局部坐标中执行更改,然后将其转换回全局。为此,我使用逆矩阵将其收回。然而,仅仅为了测试,我将把这一点改回来。

//Using numpy:

MInv =np.linalg.inv(M)

now when I use the same function to transform my output to the original state I get:

[ 3.01941932   7.90290338  0.        ] // result should be [3.0000, 8.0000, 0.0000]

显然,在linalg.inv()中使用numpy存在数值精度问题。有人可以帮助我绕过错误吗?

0 个答案:

没有答案