Ich habe eine Matrix 100x100 und ich fand seinen größten Eigenwert. Jetzt muss ich einen Eigenvektor finden, der diesem Eigenwert entspricht. Wie kann ich das machen?Finden Sie Eigenvektor für einen gegebenen Eigenwert R
6
A
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
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.
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
@ user2080209: Was macht Sie denken, die Eigenvektoren sind nicht in der gleichen Reihenfolge wie die Eigenwerte? –
@ user2080209, 'eig <- eigen (B); ig $ vectors [eig $ values == 1.611684e + 01] 'wählt den passenden Eigenvektor – huon