我正在尝试使用LAPACK的ssyev(http://www.netlib.org/lapack/explore-html/d3/d88/group__real_s_yeigen_ga63d8d12aef8f2711d711d9e6bd833e46.html)来计算特征值和特征向量。作为测试,我使用的是https://math.stackexchange.com/questions/1271788/finding-eigenvectors-of-symmetric-matrices-when-the-general-solutions-of-eigenva中的简单矩阵:
library(zoo)
z <- as.zoo(AirPassengers)
az <- aggregate(z, as.yearqtr, tail, 1)
diff(az, arith = FALSE) - 1
我得到与该问题相同的特征值(4,1,1),但是我的特征向量不同。期望值是
1949 Q2 1949 Q3 1949 Q4 1950 Q1 1950 Q2 1950 Q3
0.022727273 0.007407407 -0.132352941 0.194915254 0.056737589 0.060402685
1950 Q4 1951 Q1 1951 Q2 1951 Q3 1951 Q4 1952 Q1
-0.113924051 0.271428571 0.000000000 0.033707865 -0.097826087 0.162650602
1952 Q2 1952 Q3 1952 Q4 1953 Q1 1953 Q2 1953 Q3
0.129533679 -0.041284404 -0.071770335 0.216494845 0.029661017 -0.024691358
1953 Q4 1954 Q1 1954 Q2 1954 Q3 1954 Q4 1955 Q1
-0.151898734 0.169154229 0.123404255 -0.018939394 -0.115830116 0.165938865
1955 Q2 1955 Q3 1955 Q4 1956 Q1 1956 Q2 1956 Q3
0.179775281 -0.009523810 -0.108974359 0.140287770 0.179810726 -0.050802139
1956 Q4 1957 Q1 1957 Q2 1957 Q3 1957 Q4 1958 Q1
-0.138028169 0.163398693 0.185393258 -0.042654028 -0.168316832 0.077380952
1958 Q2 1958 Q3 1958 Q4 1959 Q1 1959 Q2 1959 Q3
0.201657459 -0.071264368 -0.165841584 0.204747774 0.162561576 -0.019067797
1959 Q4 1960 Q1 1960 Q2 1960 Q3 1960 Q4
-0.125269978 0.034567901 0.276849642 -0.050467290 -0.149606299
但我明白了
2 1 1
1 2 1
1 1 2
如何使用LAPACK ssyev获得正确的特征向量?
代码:
1 1 1
1 0 -2
1 -1 1
并用
进行编译0.57735 1 1
0.57735 0.408248 1
0.57735 0.408248 0.707107