scipy 线性代数计算中的Python和Matlab差异

kpbpu008  于 2023-01-09  发布在  Python
关注(0)|答案(1)|浏览(127)

我需要写一个线性代数计算的程序。我从Matlab切换到python,使用numpy和scipy。Python和Matlab在精度上有一些小的差异,最终导致不同的结果。例如矩阵

A =[2       -25,
    -25     -622]

在Matlab中是det(A) = 627.0,而在python中是626.9999999999978。当我检查变量时,所有变量的这些微小差异将显著改变结果。我该怎么办?

anauzrmj

anauzrmj1#

浮点数比较挑剔。当你遇到精度问题时,你可以在这里检查数字:

在本例中,626. 9999999999978是627。承认数字格式化程序本可以做得更好。
有关浮点数的更多建议:https://floating-point-gui.de/errors/comparison/
如果你知道所有的矩阵元素都是整数,那么考虑使用一个不使用浮点的矩阵表示。

相关问题