Ho una matrice 100x100 e ho trovato il valore autovalore massimo. Ora ho bisogno di trovare autovettore corrispondente a questo autovalore. Come posso fare questo?Trova autovettore per un determinato autovalore R
6
A
risposta
9
eigen
la funzione non ti dà quello che stai cercando?
> 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
Leggere l'aiuto effettivo dello stato eigen funzione che il $vectors
è una: "un p * p matrice le cui colonne contengono gli autovettori di x" Il vettore effettivo corrispondente al valore di autovalore più grande è la prima colonna di $vectors
. Per ottenere direttamente esso:
> 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
Nota che la risposta di @ user2080209 non funziona: sarebbe restituire la prima fila.
no, penso di no. Ad esempio, per la tua matrice, so autovalore 1.611684e + 01 e I cosa trovare autovettore per questo autovalore, non tutti i tre – user2080209
@ user2080209: Cosa ti fa pensare che gli autovettori non siano nello stesso ordine degli autovalori? –
@ user2080209, 'eig <- eigen (B); eig $ vectors [eig $ values == 1.611684e + 01] 'selezionerà l'autovettore appropriato – huon