2013-05-20 8 views

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 
+0

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

+2

@ user2080209: Co sprawia, że ​​myślisz, że wektory własne nie są w tej samej kolejności co wartości własne? –

+0

@ user2080209, 'eig <- eigen (B); eig $ wektory [eig $ wartości == 1,611684e + 01] 'wybierze odpowiedni wektor własny – huon

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.

Powiązane problemy