QR分解求矩阵全部特征值
来源:互联网 发布:海马玩mac安装失败 编辑:程序博客网 时间:2024/05/18 13:47
QR算法求矩阵全部特征值的基本思想是利用矩阵的QR分解通过迭代格式
将A=A1化成相似的上三角阵,从而求出矩阵A的全部特征值。
QR方法的计算步骤如下:
下面就依次进行介绍。
一. 将一般矩阵化为上Hessenberg阵
1.定义
一个矩阵如果满足i>j+1时aij=0,则将这个矩阵成为上Hessenberg阵。上Hessenberg阵
的形式如下:
2. Householder变换将一般矩阵转化为上Hessnberg阵
首先,选取Householder矩阵H1,使得经过H1相似变换后的矩阵H1AH1的元素a21下面的
元素全部为0,即a31, a41, ....., am1均为0,H1取如下形式
其中 为n-1阶HouseHolder矩阵。然后选取Householder矩阵H2,使得经过H2相似变换
之后的矩阵H2(H1AH1)H2第二列中a32下面的a42, ....am2均为0。如此进行n-2次,可以构造
n-2个householder矩阵H1,H2, Hn-2,使得 Hn-2....H2H2AH1H2....Hm-2 = H(H为上Hessenberg矩阵)。
对于一个n*m的矩阵A,第col次的H可以这样构造求得(col从0开始):
其中,I为n*n的单位矩阵, v'表示矩阵v的转置, sign(x0)表示x0的符号的相反数( 当x0>0时sign=-1,当x<=0时为1),
||x||表示向量x的长度, col等于所求的上hessenberg矩阵的序号,从0开始。
二. 用Givens变换对上hessnberg矩阵作QR分解
此时有 H = R21' * R32' * ... * Rn(n-1)'R = QR。
多次计算H,直到H的变化小于一个较小的阈值时,停止迭代,此时H主对角线上的元素
即为矩阵A的全部特征值。
下面举个例子来说明求解矩阵的全部特征值的过程。
求矩阵的全部特征值
首先将A化成上hessenberg阵,取
x = [0, 6, 4], 则 ||x|| = =
则 w = [0, , 0] , v = w + 1 * x = [0, 6+, 4]
则 p = v*v'/v'*v =
于是 H1 = I - 2*p =
所以 H = H1AH1 =
H即为与A相似的上hessenberg矩阵。将H进行QR分解
这个程序的完整代码可以到这里下载,http://download.csdn.net/detail/xxc1605629895/6473181
- QR分解求矩阵全部特征值
- QR分解求矩阵全部特征值
- (转)QR分解求矩阵的全部特征值
- QR分解求矩阵特征值、特征向量 C语言
- QR方法求矩阵特征值
- 【数值计算】householder矩阵的QR算法,求特征值
- 【矩阵】RQ/QR 分解
- Householder+QR法求解实对称矩阵全部特征值和特征向量(VC++)
- 矩阵的特征值分解
- 矩阵分析中的QR分解
- QR分解-正交矩阵生成
- 矩阵分析之QR分解
- 矩阵分析中的QR分解
- 什么是特征向量,特征值,矩阵分解
- 什么是特征向量,特征值,矩阵分解
- 什么是特征向量,特征值,矩阵分解
- 矩阵特征值,奇异值分解
- 矩阵分解(2)QR分解
- HDU'14’11'校赛 Harmonious Contest
- 原码转补码
- 汇编test和cmp
- jquery插件详解
- zedboard--交叉编译Opencv库的生成
- QR分解求矩阵全部特征值
- HDU‘14’11‘校赛 关于回文串
- AD采集数据&UDP上传
- 第十一周 项目四 特殊三位数
- PC机安装Qt以及QT交叉编译环境
- 状态压缩dp入门-铺砖问题
- C++构造函数嵌套调用的面试题引起的反思
- 遗传学算法
- A Math Problem