我正在做一些Hermitian矩阵的工作。最初的工作是在matlab中完成的,但我现在正在做一些python中的工作。我在python中使用numpy但是我在python中报告的特征值和MatLab中的特征值之间存在缺陷,有人能告诉我这里出了什么问题吗?
我有更多这个问题的例子,但一个简单的例子是:
import numpy as np
mat = [[-1,1,-1],[1,-1,1],[-1,1,1]]
w,v = np.linalg.eig(mat)
给出
w = array([ -2.56155281e+00, 2.01878445e-16, 1.56155281e+00])
在MatLab中 -
mat = [-1,1,-1;1,-1,1;-1,1,1]
eig(mat)
ans =
-2.5616
0
1.5616
这个MatLab是不精确的还是Python抛出错误?我有很多其他人同意这些价值观,不同意见是我的完整数据集的例外。解释这个问题的任何帮助都会很棒。
由于
答案 0 :(得分:0)
Matlab将显示值四舍五入。尝试以下方法以获得与python中相同的结果。
format long
mat = [-1,1,-1;1,-1,1;-1,1,1]
eig(mat)