Mam matrycę 100x100 i stwierdziłem, że jest to największa wartość własna. Teraz muszę znaleźć wektor własny odpowiadający tej wartości własnej. Jak mogę to zrobić?Znajdź wektor własny dla podanej wartości własnej R
6
A
Odpowiedz
9
eigen
Funkcja nie daje tego, czego szukasz?
> 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
Reading rzeczywistą pomoc państwa eigen funkcyjnego że $vectors
jest: "a. p * p macierz, której kolumny zawierają wektory własne x" Rzeczywistym wektorem odpowiadającym największej wartości własnej jest 1. kolumna $vectors
. Aby bezpośrednio dostać go:
> 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
Należy zauważyć, że odpowiedź od @ user2080209 nie działa: byłoby powrócić pierwszym rzędzie.
Nie, nie sądzę. Na przykład dla twojej macierzy znam wartość własną 1.611684e + 01 i I, co znaleźć wektor własny dla tej wartości własnej, nie wszystkie trzy – user2080209
@ user2080209: Co sprawia, że myślisz, że wektory własne nie są w tej samej kolejności co wartości własne? –
@ user2080209, 'eig <- eigen (B); eig $ wektory [eig $ wartości == 1,611684e + 01] 'wybierze odpowiedni wektor własny – huon