2014-10-11 265 views

回答

1
> B <- matrix(1:4, 2) 
> eig <- eigen(B) 
> eig$vectors[,which.max(eig$values)] 
[1] -0.5657675 -0.8245648 

或像這樣

> n <- 3 
> A <- matrix(round(runif(n*n),2),nrow=n) 
> A 
    [,1] [,2] [,3] 
[1,] 0.54 0.90 0.82 
[2,] 0.09 0.42 0.95 
[3,] 0.17 0.75 0.69 
> evv.A <- eigen(A) 
> evv.A 
$values 
[1] 1.6230202 0.3095823 -0.2826025 

$vectors 
      [,1]  [,2]  [,3] 
[1,] -0.7455955 -0.97996498 0.3069212 
[2,] -0.4464598 0.18600090 -0.7788676 
[3,] -0.4947332 0.07122006 0.5469594 

> 
> k <- which(abs(evv.A$values)==max(abs(evv.A$values))) 
> evv.A$vectors[,k] 
[1] -0.7455955 -0.4464598 -0.4947332 
> k 
[1] 1 
+0

感謝您的答覆。你的第二個建議將取值中第一大的特徵值並顯示其特徵向量。根據你的例子,我需要選擇兩個特徵值1.6230202 0.3095823,並且必須顯示它的特徵向量。任何方法做到這一點? – 2014-10-11 04:58:11

+0

做這個'k < - 1:2',然後'evv.A $ vectors [,k]'語句應該給出你想要的矩陣。用'?eigen'閱讀特徵的幫助。 – Bhas 2014-10-11 05:32:08

+0

如果有幫助,請接受解決方案作爲答案 – RUser 2014-10-11 05:58:28

相關問題