生如蚁,美如神

众里寻她千百度,蓦然回首,那人却在灯火阑珊处

雅可比旋转求解对称二维矩阵的特征值和特征向量

问题描述:

给定一个矩阵,如下:

A=[a11a21a12a22]

其中满足a12=a21.也就是所谓的对称矩阵。那么如何求解此矩阵的特征值以及特征向量呢?这里我们要用到雅克比旋转

雅克比旋转

Jacobi方法是求对称矩阵的全部特征值以及相应的特征向量的一种方法,它是基于以下两个结论:

  1. 任何实对称矩阵A可以通过正交相似变换成对角型,即存在正交矩阵Q,使得

    QTAQ=diag(λ1,λ2,,λn)

    其中λi(i=1,2,,n)是A的特征值,Q中各列为相应的特征向量。

  2. 在正交相似变换下,矩阵元素的平方和不变. 即设A=(aij)n×n,Q为正交矩阵,记B=QTAQ=(bij)n×n , 则

    i,j=1na2i,j=i,j=1nb2i,j

    Jacobi方法的基本思想是通过一次正交变换,将A中的一对非零的非对角元素化成零并且使得非对角元素的平方和减小。反复进行上述过程,使变换后的矩阵的非对角元素的平方和趋于零,从而使该矩阵近似为对角矩阵,得到全部特征值和特征向量。

如下我们仅仅考虑二维矩阵。对于高维的以此类推。
考虑如下的旋转矩阵,

P=[cos(θ)sin(θ)sin(θ)cos(θ)]

显然我们知道P是正交矩阵,即PT=P1orPPT=E
对矩阵A实施正交变换,即如下:
A=PTAP
.
则有:
a11=cos2(θ)a11+sin2(θ)a222cos(θ)sin(θ)a12                     (1)

a22=sin2(θ)a11+cos2(θ)a22+2cos(θ)sin(θ)a12                     (2)

a12=(cos2(θ)sin2(θ))a12+cos(θ)sin(θ)(a11a22)                     (3)

a12=0,则可得出θ的表达式:
ϕ=cot(2θ)=cos2(θ)sin2(θ)2sin(θ)cos(θ)=a22a112a12            (4)

如果令t=sin(θ)/cos(θ),则
t2+2tϕ1=0

这一方程较小的根对应着一个数量上小于π/4的旋转角,利用二次求根公式并对分母进行区分,可以写出这一较小的根为:
t=sgn(ϕ)|ϕ|+ϕ2+1            (5)

如果θ很大,以至于θ2在计算机上溢出,则令t=1/(2ϕ).于是就有:
cos(θ)=1t2+1            (6)

sin(θ)=tcos(θ)                (7)

将(6、7)代入(1-3)则,显然有:
(3)有a12=0.剩下等式的指导思想是想将它们的新值写成旧值加一个小的修正。于是利用a12=0,将(1-2)的a22消去,则有:
a11=a11ta12

a22=a22+ta12
.
至此通过一次旋转变换,即可将原矩阵非对称部分消零。整个矩阵变成一个对角矩阵。且相应的特征向量也可以得出。
APAA(P1,P2)=PTAP=AP=(P1,P2)[a11a22]

也就是A的特征值为a11a22,相应的特征向量为P1,P2.
其中,
P1=[cos(θ)sin(θ)]

P2=[sin(θ)cos(θ)]

至于代码,就不写了,很简单哦!

参考文献

  1. 第四章第三节 Jacobi 方法
  2. Numerical Recipes(数值分析方法库) C/C++:见第11章特征系统,对称矩阵的雅可比变换。


打赏

阅读更多
版权声明:本文为博主原创文章,转载请注明原地址。 https://blog.csdn.net/xiamentingtao/article/details/52663220
文章标签: 图像处理
个人分类: 图像处理
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭