用Accord.NET

时间:2017-11-20 17:30:11

标签: c# eigenvalue eigenvector accord.net matrix-decomposition

我想从3x3矩阵中获取特征向量和特征值。

我已经尝试使用雅阁的EigenvalueDecomposition。 问题(?)我得到的特征向量是因为特征向量的在线计算器给了我与Accord.NET不同的向量。

更确切地说,我在此测试矩阵上尝试了Accord的EigenvalueDecomposition

  

(1,2,3)

     

(4,5,6)

     

(7,8,9)

arndt-bruenner计算器(http://www.arndt-bruenner.de/mathe/scripts/engl_eigenwert2.htm)给出了这些结果:

  

真实特征值:{-1.1168439698070431; 0; 16.116843969807043}

     

特征向量:

     

for Eigenvalue -1.1168439698070431:

     

[-0.785830238742067; -0.08675133925662847; 0.6123275602288102]

     

表示特征值0:

     

[0.4082482904638631; -0.8164965809277261; 0.4082482904638631]

     

for Eigenvalue 16.116843969807043:

     

[0.2319706872462859; 0.5253220933012337; 0.8186734993561815]

现在当我在Accords EigenvalueDecomposition上使用这个测试矩阵时,我得到了这些结果:

  

(0.231970687246286,0.816964204061037,0.408248290463863)

     

(0.525322093301234,0.0901883579085377,-0.816496580927726)

     

(0.818673499356182,-0.636587488243964,0.408248290463863)

然而,特征值与在线计算器的结果是正确的。

我做错了什么?如何才能正确使用雅阁的功能?

我只在c#中执行此操作:

double[,] kovarianzmatrix = new double[,]
        {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        };

        Accord.Math.Decompositions.EigenvalueDecomposition solver = new Accord.Math.Decompositions.EigenvalueDecomposition(kovarianzmatrix, false, true);

并在控制台中打印了特征向量。

0 个答案:

没有答案