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分解求矩阵的全部特征值相关推荐

  1. QR分解求矩阵特征值、特征向量 C语言

    最近在看一个高光谱图像压缩算法,其中涉及到正交变换,计算正交变换时,需要对普通矩阵求其特征向量.想要在网上找一个现成的程序,可能是我百度的能力不强吧,居然真的没找见.好了废话不多说,下面进入正题. 计 ...

  2. QR分解求矩阵全部特征值

    QR算法求矩阵全部特征值的基本思想是利用矩阵的QR分解通过迭代格式 将A=A1化成相似的上三角阵,从而求出矩阵A的全部特征值. QR方法的计算步骤如下: 下面就依次进行介绍. 一. 将一般矩阵化为上H ...

  3. 【matlab】 QR分解 求矩阵的特征值

    "QR_H.m"function [Q,R] = QR_tao(A) %输入矩阵A %输出正交矩阵Q和上三角矩阵R [n,n]=size(A); E = eye(n); X = z ...

  4. QR分解求矩阵绝对值-基于HouseHolder变换

    思路: 输入矩阵A(mxn)-->HouseHolder变换-->获得矩阵B(Hessenberg矩阵nxn)-->Gievens变换 -->获得Q(标准正交nxn)和R(上三 ...

  5. C语言通过QR分解计算矩阵的特征值和特征向量

    #include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h>// ...

  6. 双步位移求解特征值matlab,数值分析——带双步位移的QR分解求特征值算法

    C语言实现数值分析中带双步位移的QR分解求特征值算法. 数 值 分 析(B) 大 作 业(二) 1.算法设计: ①矩阵的拟上三角化: 对实矩阵A进行相似变换化为拟上三角矩阵A(n 1),其变换矩阵采用 ...

  7. qr分解求线性方程组_矩阵分解

    矩阵分解 1. 矩阵的三角分解 1.1 高斯消去法解线性方程组 在聊起矩阵分解之前,先看一下我们小学二年级就学过的高斯消去法解线性方程组,其主要思想就是:将方程组写作写作增广矩阵(A|b)的形式,然后 ...

  8. 【机器学习】用QR分解求最小二乘法的最优闭式解

    [机器学习]用QR分解求最小二乘法的最优闭式解 写在前面 QR分解 定义 QR的求解 线性回归模型 用QR分解求解最优闭式解 矩阵的条件数 实验 运行结果 写在前面 今天刷知乎,看到张皓在面试官如何判 ...

  9. 豪斯荷尔德变换 matlab,隐式QR法求实矩阵的全部特征值matlab实现

    隐式QR法求实矩阵的全部特征值matlab实现 隐式QR法求实矩阵的全部特征值matlab实现 要求:用matlab编写通用子程序,利用隐式QR法求实矩阵的全部特征值和特征向量. 思想:隐式QR法实质 ...

最新文章

  1. John the Ripper
  2. Linux Kernel TCP/IP Stack — L2 Layer — Traffic Control(流量控制)的基本操作
  3. 惠普战66怎么用u盘进入系统_惠普笔记本怎么用u盘启动装系统,空间也要大所以超来超受欢迎!...
  4. 通过SmartGit把java maven项目传到码云
  5. MySQL——MHA原理介绍及VIP配置
  6. php微信上传图文素材,php使用curl 上传微信公共平台素材文件
  7. php根据键值排序,数组根据某个键值排序
  8. Mybatis(一) 主配置文件
  9. 手把手教你玩转OpenWRT路由器系统,视频教程合集
  10. 海思HI3516A千兆网卡换百兆网卡配置方法
  11. java2048小游戏源码及解析_200行java代码实现2048小游戏
  12. 基于卡方的独立性检验
  13. 撕开市场缺口,认养一头牛“犟心”能给谁?
  14. 车牌识别停车系统无法链接服务器,停车场车牌识别系统识别不了的处理方法有哪些?...
  15. 半身全身发型替换之一: 方法调研以及相关问题
  16. 微服务架构在阿里的演化
  17. mysql读提交和重复读区别_读已提交和可重复读的区别 命令行测试
  18. 三秒教会你如何使用scrcpy手机无线投屏到电脑
  19. Android Studio开发环境
  20. 2.4G无线收发模块的应用

热门文章

  1. 如何向领导汇报工作(4)
  2. 选择一个表单生成器:比较7种最佳WordPress表单生成器
  3. 又一年秋。。。。。。
  4. RSA加密算法简单介绍以及python实现
  5. 简单计算器程序 (实现加减乘除基本运算)
  6. 如何养出优质的短视频账号?做好四个指标,账号才能越来越好
  7. django 分页 带搜索框
  8. 超黑光摄像机可以有多“黑“?
  9. docker容器介绍(五)连载
  10. pyinstaller 打包项目及使用UPX压缩