Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Find eigenvector for a given eigenvalue R

I have a matrix 100x100 and I found it's biggest eigenvalue. Now I need to find eigenvector corresponding to this eigenvalue. How can I do this?

like image 848
user2080209 Avatar asked May 20 '13 14:05

user2080209


2 Answers

eigen function doesn't give you what you are looking for?

> 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
like image 175
Jilber Urbina Avatar answered Sep 23 '22 21:09

Jilber Urbina


Reading the actual help of the eigen function state that the $vectors is a : "a p*p matrix whose columns contain the eigenvectors of x." The actual vector corresponding to the biggest eigen value is the 1st column of $vectors. To directly get it:

> 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

Note that the answer of @user2080209 does not work: it would return the first row.

like image 39
zetieum Avatar answered Sep 21 '22 21:09

zetieum