SAS中文论坛
标题:
求实对称矩阵的特征值和特征向量
[打印本页]
作者:
shiyiming
时间:
2008-6-2 23:39
标题:
求实对称矩阵的特征值和特征向量
大家好,我用SAS8.1计算实对称矩阵A=
161.079031576618 208.250301732992 -64.1043482618227
208.250301732992 273.792923146327 -84.8950989429858
-64.1043482618227 -84.8950989429858 26.9151793309588
的全部特征值和特征向量,方法是将上述数据输入数据表然后做多变量分析的主成分分析,SAS先将上述数据进行标准差标准化,然后给出标准化变量的所有特征值和特征向量,如下:
Correlation Matrix
VAR1 VAR2 VAR3
VAR1 1.0000 1.0000 -.9999
VAR2 1.0000 1.0000 -1.000
VAR3 -.9999 -1.000 1.0000
Eigenvalues of the Correlation Matrix
Eigenvalue Difference Proportion Cumulative
1 2.99990937 2.99981874 1.0000 1.0000
2 0.00009063 0.00009063 0.0000 1.0000
3 0.00000000 0.0000 1.0000
Eigenvectors
Prin1 Prin2 Prin3
VAR1 0.577343 0.791900 -.198921
VAR2 0.577358 -.223676 0.785256
VAR3 -.577351 0.568210 0.586348
我根据求实对称矩阵所有特征值和特征向量的雅可比法自己编写了程序,(原理见 <!-- m --><a class="postlink" href="http://www.tyut.edu.cn/kecheng/jisff/dzja/ch4/ch4-2.htm">http://www.tyut.edu.cn/kecheng/jisff/dzja/ch4/ch4-2.htm</a><!-- m -->),得到结果如下:
相关阵:
1.000000 0.999953 -0.999916
0.999953 1.000000 -0.999995
-0.999916 -0.999995 1.000000
特征根:
2.999909
0.000091
0.000000
特征向量:
-0.577343 -0.791901 -0.198919
-0.577358 0.223678 0.785256
0.577351 -0.568209 0.586349
测试特征值和特征向量:
A - λi 特征向量
1.000000 0.999953 -0.999916 | -0.198919 -0.791901 -0.577343
0.999953 0.999909 -0.999995 | 0.785256 0.223678 -0.577358
-0.999916 -0.999995 -1.999909 | 0.586349 -0.568209 0.577351
根据特征根和特征向量的定义进行特征根和特征向量的测试(A - λi横行的每个数值与特征向量的i列的每个值相乘求和,每个和数理论上应当等于0),结果如下:
i=1: 1.2565457029913E-10
i=2: -1.26842518096987E-10
i=3: 1.70247930336709E-11
可以看出,三个得值也很趋近于0,仅从数值方面考虑应该是没问题的。
在我的程序中,取得旋转角度时我用的是tg2θ=2tgθ/[1-(tgθ)^2],根据上面的原理的(10)式子求出tgθ的两个值,然后解一元二次方程,求出tgθ,只取tgθ>=0时候的θ值,进一步求出Sinθ和Cosθ进行后面的运算。
上面的SAS运算结果和我的结果在特征值方面是相同的,与特征值对应的特征向量的绝对值也是相同的,可就是有部分向量的符号不同,请问大家这是为什么?是我选取旋转角度θ的方法出问题了吗?望大家给指点一下,在此先谢谢各位了!
作者:
shiyiming
时间:
2008-6-3 23:42
标题:
Re: 求实对称矩阵的特征值和特征向量
在人大经济论坛上也看到过了,没人回,发这来啦!
首先,我不明白作者为什么如此重视求得的特征向量与SAS算出的差一个负号!这对于特征向量来说是无关紧要的。
其次,我想问题可能会出在这样几个地方。1.先看你的算法,旋转角度θ的选取可以不局限于小于90度,如果将你求得的θ+180度,即将坐标轴的方向取反,那么算出的特征向量会与之前的差一个负号。2.如果SAS是用公式( λi-A)*X=0来计算特征向量X的话,也会差异一个负号的。
欢迎光临 SAS中文论坛 (https://mysas.net/forum/)
Powered by Discuz! X3.2