关闭

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

标签: 图像处理
1253人阅读 评论(2) 收藏 举报
分类:

问题描述:

给定一个矩阵,如下:

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章特征系统,对称矩阵的雅可比变换。


打赏

1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

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

问题描述:给定一个矩阵,如下: A=[a11a21a12a22] A=\begin{bmatrix} a_{11}&a_{12}\\ a_{21}& a_{22} \end{bmatrix} ...
  • xiamentingtao
  • xiamentingtao
  • 2016-09-25 23:32
  • 1253

矩阵的特征值和特征向量的雅克比算法C/C++实现

矩阵的特征值和特征向量是线性代数以及矩阵论中非常重要的一个概念。在遥感领域也是经常用到,比如多光谱以及高光谱图像的主成分分析要求解波段间协方差矩阵或者相关系数矩阵的特征值和特征向量。根据普通线性代数中...
  • zhouxuguang236
  • zhouxuguang236
  • 2014-10-18 16:10
  • 22697

矩阵特征分解介绍及雅克比(Jacobi)方法实现特征值和特征向量的求解(C++/OpenCV/Eigen)

矩阵特征分解介绍及雅克比(Jacobi)方法实现特征值和特征向量的求解(C++/OpenCV/Eigen)
  • fengbingchun
  • fengbingchun
  • 2017-05-29 11:49
  • 2333

雅可比算法求方阵的全部特征值和特征向量

ValVect.h #include class ValVect { public : ValVect(void); void clear(void); //~ValVect(void);...
  • shiguangrenran1
  • shiguangrenran1
  • 2012-10-31 08:11
  • 4527

数组分析 jacobi法求实对称矩阵全部特征值与特征向量 MATLAB实现

Jacobi迭代法求解实对称矩阵的特征值与特征向量。 MATLAB实现 输入:eps允许的误差限,A实对称矩阵;输出:lam是n个特征值,U的列向量对应特征向量
  • jingmiaa
  • jingmiaa
  • 2015-11-19 19:48
  • 765

利用QR算法求解矩阵的特征值和特征向量

利用QR算法求解矩阵的特征值和特征向量为了求解一般矩阵(不是那种幼稚到shi的2 x 2矩阵)的特征值. 根据定义的话,很可能需要求解高阶方程... 这明显是个坑...高阶方程你肿么破...折腾了...
  • u011368821
  • u011368821
  • 2015-03-05 22:02
  • 3616

C语言调用MKL进行矩阵计算—特征值特征向量求解

MKL C语言
  • wangtao2773
  • wangtao2773
  • 2017-05-04 18:13
  • 248

使用MTL库求解矩阵特征值和特征向量

关于矩阵的特征值和特征向量求解,大部分的数学运算库都进行了提供,下面是使用MTL库的接口进行封装。#include #include #include #include #include ...
  • liminlu0314
  • liminlu0314
  • 2013-05-21 20:10
  • 3099

矩阵特征值和特征向量求解——特征值分解

工程数学中,非常关键的一个地方,充分的理解矩阵值、矩阵向量的概念和物理意义对于理解机器学习中的,比如主成分分析算法的矩阵向量运算有很好的的帮助作用。
  • qq_14959801
  • qq_14959801
  • 2017-04-27 16:48
  • 464

雅克比法求取矩阵特征值和特征向量(c语言)

  • 2013-08-16 15:51
  • 616KB
  • 下载
    个人资料
    • 访问:282159次
    • 积分:4103
    • 等级:
    • 排名:第8738名
    • 原创:117篇
    • 转载:81篇
    • 译文:8篇
    • 评论:106条
    个人网站
    最新评论