gpt4 book ai didi

python - 从 python numpy 和 Matlab 求解线性方程得到不同的答案

转载 作者:太空宇宙 更新时间:2023-11-03 20:30:26 31 4
gpt4 key购买 nike

我使用 python 和 Matlab 运行相同的算法。当他们求解同一个线性系统时,结果略有不同,这将导致最终的结果完全不同。我想知道如何修复 python 以获得与 Matlab 相同的结果。谢谢!

Ax=b,Python:

A=[[ 1.,  0.,  0.,  0.,  1.,  1.,  1.,  2.],
[ 0., 0., 0., 0., -0., -1., -0., -0.],
[ 0., 0., 0., 0., -0., -0., -1., -0.],
[ 0., 0., 0., 0., -0., -0., -0., -1.],
[ 1., -0., -0., -0., -1., -0., -0., -0.],
[ 1., -1., -0., -0., -0., -1., -0., -0.],
[ 1., -0., -1., -0., -0., -0., -1., -0.],
[ 2., -0., -0., -1., -0., -0., -0., -1.]]
b=[[ 1.],[ 0.],[ 0.],[ 0.],[-1.],[ 0.],[ 0.],[ 0.]]

res_py = numpy.linalg.solve(A,b)

和 Matlab:

res_m  = A\b 

Python 输出:

[[-0.],[ 0.],[ 0.],[-0.],[-1.],[ 0.],[ 0.],[ 0.]]

Matlab 输出:

[ 0; -4.163336342344337e-17; -4.163336342344337e-17; 0; -1.000000000000000e+00; 0; 2.775557561562891e-17; 0]

最佳答案

Matlab 可能使用比 Python 脚本更高精度的 float ,或者使用不同的浮点精度模式(例如快速与严格)。

在大多数情况下,结果偏离 x*10-17 不会造成太大麻烦 - 需要进行多次操作才能导致这种规模的错误产生重大影响.

您还可以尝试在打印值时强制使用指数表示法,以查看它们是否确实四舍五入 ( usual stuff )。

关于python - 从 python numpy 和 Matlab 求解线性方程得到不同的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57548838/

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