2013-05-20 7 views

Antwort

9

eigen Funktion gibt Ihnen nicht das, was Sie suchen?

> B <- matrix(1:9, 3) 
> eigen(B) 
$values 
[1] 1.611684e+01 -1.116844e+00 -4.054214e-16 

$vectors 
      [,1]  [,2]  [,3] 
[1,] -0.4645473 -0.8829060 0.4082483 
[2,] -0.5707955 -0.2395204 -0.8164966 
[3,] -0.6770438 0.4038651 0.4082483 
+0

Nein, denke ich nicht. Zum Beispiel, für Ihre Matrix, ich kenne Eigenwert 1.611684e + 01 und ich was Eigenvektor für diesen Eigenwert zu finden, nicht alle drei – user2080209

+2

@ user2080209: Was macht Sie denken, die Eigenvektoren sind nicht in der gleichen Reihenfolge wie die Eigenwerte? –

+0

@ user2080209, 'eig <- eigen (B); ig $ vectors [eig $ values ​​== 1.611684e + 01] 'wählt den passenden Eigenvektor – huon

3

die tatsächliche Hilfe der Eigenfunktionszustand lesen, dass die $vectors ein: "a. p * p Matrix, deren Spalten enthalten die Eigenvektoren von x" Der tatsächliche Vektor, der dem größten Eigenwert entspricht, ist die erste Spalte von $vectors. Um es direkt zu erhalten:

> B <- matrix(1:9, 3) 
> eig <- eigen(B) 
> eig$vectors[,which.max(eig$values)] 
[1] -0.4645473 -0.5707955 -0.6770438 
# equivalent to: 
> eig$vectors[,1] 
[1] -0.4645473 -0.5707955 -0.6770438 

Beachten Sie, dass die Antwort von @ user2080209 nicht funktioniert: es würde wieder die erste Reihe.