利用逆矩阵解线性方程组_QR方法求解矩阵所有特征值(一)

QR分解法是求中小型矩阵全部特征值的最有效并广泛应用的方法。
一般矩阵先经过正交相似变化成为Hessenberg矩阵,然后再应用QR方法求特征值和特征向量。

QR 分解

在学习QR方法之前需要知道什么是QR分解。不过相信每个人都在线性代数课上学过了。

总的来说,矩阵QR分解有三种方法

  1. 经典的 Gram-Schmidt 正交化方法

有数值不稳定的缺点,可以用改进的Gram-Schmidt方法

2. Householder 变换法:数值稳定,适用于稠密矩阵

3. Givens 变换:数值稳定,适用于稀疏矩阵

详细的可以看某位大佬的这个回答:

QR分解的三种实现方法(Gram schmidt等)各自有什么优势和劣势?​www.zhihu.com

如何理解 Householder 变换和 Givens 变换可以看这个回答:

如何理解Householder变换和Givens旋转?​www.zhihu.com
ea234f68d6e7e2697160a32256a5bf64.png

Householder 变换能将一个向量变换为坐标向量的若干倍

计算出这个 Householder 矩阵需要

的时间
function

而 Givens 变换将向量的某一个位置变换为0

计算出这个 Givens 矩阵只需要

的时间
function

对于一个低阶的稠密矩阵,通常的方法就是 Householder 变换了。

function

对一个可逆矩阵

是正交矩阵,
是对角元为正的上三角矩阵。易证这样的分解是唯一的。

上 Hessenberg 化

用 Householder 变换还能把一个矩阵变换为上海森伯格矩阵:

是正交矩阵,
是上海森伯格矩阵。这样的分解一般不是唯一的,但如果固定矩阵
的第一列的数值,那么就只会有一个符号上的差别(
倍)

这时

是相似的,因而具有相同的特征值,求
的特征值等价于求
的特征值。
function

为什么要将矩阵化为上Hessenberg矩阵呢?

原因在于,用Household变换求解一个常规矩阵的QR分解需要的时间是

,而上Hessenberg矩阵可以用Givens变换在
的时间内做到
,而任何一个实矩阵都可以正交相似与一个上Hessenberg矩阵,因而两者有相同的特征值!

(因为求出一个Householder矩阵需要

而确定一个Givens矩阵只需要
,同时Givens矩阵乘以一个矩阵只需要
的时间!!!)

另有参考文献:

lanczos算法及C++实现(二)实对称阵奇异值分解的QR算法 - qxred - 博客园​www.cnblogs.com
8017418435422bfc68dbafe7eaf745fb.png

本文代码的 GitHub 链接:

https://github.com/wunian12138/zhihu/tree/master/MATLAB/qr_method​github.com

欢迎 star

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值