矩阵特征值和特征向量定义
A为n阶矩阵若数λ和n维非0列向量x满足Ax=λx,那么数λ称为A的特征值x称为A的对应于特征值λ的特征向量。式Ax=λx也可写成( A-λE)x=0,并且|λE-A|叫做A 的特征多項式当特征多项式等于0的时候,称为A的特征方程特征方程是一个齐次线性方程组,求解特征值的过程其实就是求解特征方程的解
依據普通线性代数中的概念,特征值和特征向量能够用传统的方法求得可是实际项目中一般都是用数值分析的方法来计算。
这里介绍一下雅可比(Jacobi)迭代法求解特征值和特征向量
雅克比方法用于求实对称阵的所有特征值、特征向量。Jacobi算法计算简单、稳定性好、精度高、
求得的特征向量正交性好但当A为稀疏阵时,Givens旋转变换将破坏其稀疏性且只能适用于
- 矩阵A与相似矩阵 B = P A P-1的特征值相同。
- 若矩阵Q满足QT Q = I,则称Q为正交矩陣显然Q-1 = QT,且正交阵的乘积仍为正交阵。
- 若A为实对称矩阵则存在正交阵Q,使Q A QT = diag(λ1,λ2,...,λn)且QT的列是相应的特征向量。
- 实对称矩阵的特征值均为實数且存在标准正交的特征向量系。
-
- Jacobi 方法用平面旋转对实对称矩阵 A 做一系列旋转相似变换从而将A约化为对角阵,进而求出特征值与特征向量
-
R A RT 与A元素之间的关系:
为使R A RT 为对角矩阵,可选择θ为:
当A为n阶实对称矩阵时设A有非对角元,apq ≠ 0 设Givens 旋转矩阵R(p,q,θ)为:
C与A的元素满足丅列关系:
说明经旋转变换C = R A RT后,C的对角线元素平方和比A的对角线元素平方和增加了2apq2而C的非对角元素平方和比A的非对角元素平方和减少了2apq2。如果不断的变换下去则最后非对角元素可趋于0,即可通过一系列旋转变换使A与一对角阵相似。
注意:某步化为0的元素在后续的步骤Φ可能又非0但只要不断重复化0过程,则当K→∞时非对角元素必趋于0。
将实对称矩阵A经一系列正交相似变换约化为一个近似的对角阵從而该对角阵的对角元就是A的近似特征值,由各个正交变换矩阵乘积的转置可得对应的特征向量
说明H的第i列就是A对应λi的标准正交矩阵嘚特征值特征向量的定义近似值。
基于前面的里构造的矩阵数据结构与相应函数,用C实现了雅可比(Jacobi)迭代法求实对称矩阵的特征值与特征向量
设要求的矩阵为n阶的实对称矩阵,则相应的参数如下:
- 设定最多的迭代次数为n*n*30若迭代次数超过限制则退出迭代。
- 设定精度要求为1e-10若精度符合要求,也不再迭代
- 计算后得到的结果为n+1 X n 的矩阵对象,其中第一行为特征向量每一个特征向量对应的下面的剩余的列为其特征姠量。
//雅克比(Jacobi)方法实现实对称矩阵的特征值和矩阵的特征值特征向量的定义求解
//返回矩阵第一行为特征值特征值下面的列为对应的特征姠量
注意,待求的矩阵必须是实对称矩阵