矩阵 QR分解法

    关于如何求一个矩阵A的特征向量X和特征值λ,在上学时我们通常使用如下方法:

                      AX =λX =λIX (I:单位阵)

                  => |A -λI| = 0

                  => 求出λ

                   =>代入AX =λX求出X

         但在实际应用中这样没啥实际价值,实践中一般使用Q·R分解。

 

QR分解

         对于m×n的列满秩矩阵A,必有:

                   Am*n= Qm*n·Rn*n

         其中,QT·Q=I(即Q为正交矩阵),R为非奇异上三角矩阵(即矩阵R的对角线下面的元素全为0)。

         这个将A分解成这样的矩阵Q和R的过程就是QR分解。

         其中当要求R的对角线元素为正时,该分解唯一。

         QR分解可用于求解矩阵A的特征值、A的逆等问题。

 

QR分解求特征值的过程:

         根据定义:Am*n= Qm*n·Rn*n,下面我们对该式做如下变换:

                    A = QR

                  => QTA = QTQR= R

                   =>QTAQ = RQ

         因为Q是正交阵,所以QTAQ的特征值不发生变化,所以想办法求出RQ的特征值就OK了。

         现在我们令A1= RQ,然后对A1做QR分解,得出A1 = Q2R2,然后同上令A2= R2Q2,就向这样一直进行下去最后求出An时,An就是一个“只有对角线上有值其他都为0的矩阵”,即:求出A的特征值了。

         文字描述就是上面了,用数学表述其过程就是:

                   A= QR  =>  A1 = QTAQ  => RQ

                   ...

                   Ak= QkRk  =>  Ak+1 = RkQk

                   ...

                   Ak-> diag{λ1,λ2, ...λn }

 

         PS:

                   1,一般实践中不会直接做QR分解,因为下面的代码中那么一个简单的矩阵都经过了十几次迭代才收敛。实践中往往先把一个矩阵A通过HouseHolder变换做成上Hessenberg矩阵,然后通过Givens变换做QR分解。

                   2,和QR分解的还有Schmidt正交化,感兴趣的可以去查查。

 

代码

         代码源自皱博老师,我就直接截图了:

                  

                   

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值