QR方法是Francis于1961年发表的用于求解所有特征值的算法呢。该算法对对称矩阵和非对称矩阵都适用,都可以分解成正交矩阵Q和上三角矩阵R乘机的形式。但是在实际应用中,需要先进行相似变化在OR分解。其中,对于非对称矩阵,需要利用Hessenberg矩阵;而对于对称矩阵,需要利用三对角矩阵。如果再加上最后要讲的原点位移、降阶等技巧,整套算法会变得相当复杂。该方法是利用2个正交矩阵的乘机一定是正交矩阵,正交矩阵的逆矩阵也是正交矩阵,故QR分解是利用了上述特点,即对正交矩阵进行多次分解,相乘。

用QR方法求解矩阵特征值的基本流程:

(1)对需要求解的特征值得矩阵进行QR分解

(2)对分解出来的结果进行逆向相乘

(3)将相乘得到的矩阵进行QR分解

(4)对分解出来的结果进行逆向相乘

。。。。。

QR分解

其中Q*Q^T=I,Q为正交矩阵,R为非奇异上三角矩阵。

Hessenberg矩阵

在上三角矩阵的基础上,若其对角线左下方的一条斜线不为0,则该方阵成为Hessenberg矩阵,也称海森伯格矩阵,如下图所示。

QR分解


       在Hessenberg矩阵进行迭代时,首先Hessenberg矩阵的左下角都为0,可知Hessenberg矩阵在进行对应元素相乘时,经过0元素相乘,使其对应位置的元素值为0。从而Hessenberg矩阵的次对角线元素的值逐渐趋向于0,也就能达到接近去上三角矩阵的形式。随着元素中0的个数逐渐增加,达到了QR分解的计算量得到了减少。

        如果将矩阵转换为Hessenberg矩阵,则是Householder方法,接下来将介绍Householder方法。

Householder方法

        该方法是利用镜像变化,将一般的非对称矩阵通过相似变换得到Householder方法。该方法是将空间中的任一点x,变换到与其关于经过原点的超平面的另一点x',这样的变换称为镜像变换。

        令经过原点的超平面的单位法向量为u,u为列向量,u^Tx是数。

QR分解

变换后的x'为:

QR分解

于是线性变换可以用:

QR分解

步骤:

(1)对于矩阵转换为Hessenberg矩阵时,需要每一列计算一次,比如说第一列。

对于一个任意的列向量x,模为||x||=|α|对于标量α。如果算法是使用浮点型算法实现的,那么α应该得到与第k个坐标相反的符号x,x_k是变换后的上三角形式的坐标,其余为0。则,设置。

QR分解

对于矢量e1=(1,0,...,0)^T,有

QR分解

QR分解

QR分解

将第一列转换完之后,按照这样的思路去掉第一行以及第一列进行第二词的矩阵转换。最后将完成整体H的转换。

例子

(1)Householder方法

QR分解

首先,需要转换矩阵A的第一列向量a1=(12,6,-4)^T,则有

QR分解

QR分解

QR分解

QR分解

通过Q_1A可知第一列已经满足了我们的需求,结果如下所示。

QR分解

采取上述方法进行第二次的转换,转换矩阵为:

QR分解

QR分解

QR分解

QR分解

由于第一次已经计算过了,所以Q2需要把第一次计算的向量也加进去,得到了最终的Q2

QR分解

则Q为

QR分解

R为

QR分解

(2)gram-schmidt方法

QR分解


参考

https://wenku.baidu.com/view/ce6de5f2a32d7375a5178015.html

https://en.wikipedia.org/wiki/QR_decomposition

相关文章:

  • 2021-12-15
  • 2022-02-19
  • 2022-03-03
  • 2021-05-24
  • 2021-05-08
  • 2021-06-14
  • 2022-12-23
猜你喜欢
  • 2022-02-07
  • 2022-03-06
  • 2021-10-20
  • 2022-02-27
相关资源
相似解决方案