3

Ich wollte die Eigenvektoren und Eigenwerte aus einer 3x3-Matrix erhalten.Berechnen von Eigenwert und Eigenvektor für 3x3-Matrix mit Accord.NET

Ich habe bereits versucht, die EigenvalueDecomposition von Accord zu verwenden. Das Problem (?) Ich habe mit den resultierenden Eigenvektoren ist, dass Online-Rechner für Eigenvektoren geben mir verschiedene Vektoren aus, was Accord.NET tut.

Genauer gesagt, habe ich versucht Accord EigenvalueDecomposition auf dieser Testmatrix:

(1, 2, 3)

(4, 5, 6)

(7, 8, 9)

wo der arndt-bruenner Rechner (http://www.arndt-bruenner.de/mathe/scripts/engl_eigenwert2.htm) gibt mir diese Ergebnisse:

Reale Eigenwerte: {-1.1168439698070431; 0; 16,116843969807043}

Eigenvektoren:

für Eigenwert -1,1168439698070431:

[-,785830238742067; -0,08675133925662847; ,6123275602288102]

für Eigenwert 0:

[,4082482904638631; -0,8164965809277261; ,4082482904638631]

für Eigenwert 16,116843969807043:

[,2319706872462859; 0.5253220933; ,8186734993561815]

Nun, wenn ich diesen Test Matrix auf Accords EigenvalueDecomposition verwenden, erhalte ich diese Ergebnisse:

(0,231970687246286, ,816964204061037, 0,408248290463863)

(0,5253220933, ,0901883579085377, -,816496580927726)

(0,818673499356182, -,636587488243964, 0,408248290463863)

Die Eigenwerte stimmen jedoch mit den Ergebnissen des Online-Rechners.

Was mache ich falsch und wie muss ich die Accord-Funktionen richtig verwenden?

Ich tat dies nur in 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); 

und druckte die Eigenvektoren in der Konsole.

Antwort

0

Leider nach MATLAB, sie sind beide falsch!

>> A=[1 2 3; 4 5 6; 7 8 9]; 
>> [V,D]=eig(A); 
>> A 

A = 

    1  2  3 
    4  5  6 
    7  8  9 

>> V 

V = 

    -0.2320 -0.7858 0.4082 
    -0.5253 -0.0868 -0.8165 
    -0.8187 0.6123 0.4082 

>> D 

D = 

    16.1168   0   0 
     0 -1.1168   0 
     0   0 -0.0000 


>> A*V 

ans = 

    -3.7386 0.8776 -0.0000 
    -8.4665 0.0969 -0.0000 
    -13.1944 -0.6839 -0.0000 

>> V*D 

ans = 

    -3.7386 0.8776 -0.0000 
    -8.4665 0.0969 0.0000 
    -13.1944 -0.6839 -0.0000 

>> 

Keiner die A*V = V*D Test, wo übergeben:

A = Eingangsmatrix

V = Eigenvektoren

D = Diagonal Eigenwertmatrix

Verwandte Themen