MatLab中的特征值与Hermitian矩阵的numpy的差异

时间:2016-02-05 12:27:43

标签: python matlab numpy matrix eigenvalue

我正在做一些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抛出错误?我有很多其他人同意这些价值观,不同意见是我的完整数据集的例外。解释这个问题的任何帮助都会很棒。

由于

1 个答案:

答案 0 :(得分:0)

Matlab将显示值四舍五入。尝试以下方法以获得与python中相同的结果。

format long
mat = [-1,1,-1;1,-1,1;-1,1,1]
eig(mat)