QR分解是矩阵的一种分解算法,可以将一个非奇异矩阵分解成正交矩阵Q,和三角矩阵R(通常是上三角)。使用QR迭代也可以求出矩阵的特征值,不过前一步要求矩阵变为上Hessenberg矩阵。将矩阵进行QR分解可以使用Household变换,Schmidt正交化以及Given变换。对于Schmidt不是十分了解。QR迭代的核心是把矩阵某些位置上的元素变为零,Household和Given都能达到这个目的。但两者的区别是Household变换能一次实现多个0的转换,一次Given变换只能实现一个0的转换。本文着重介绍Given变换。
Given变换的原理是平面旋转矩阵。之前一直有疑惑,在不同的情况下,会出翔两种旋转矩阵:
两个矩阵都作为左乘原始矩阵。
经过一番调查以后,实际上这两个都是旋转矩阵,但是旋转的标准不一样。
这个是对于点进行旋转,而坐标系不动
这个是对于坐标系旋转,而点不动。
这就自然解释了为什么sin相反,坐标系旋转相当于点向逆方向旋转。不过在查阅资料以后发展在Given变换中使用的都是右上角为sin的一种旋转矩阵。
另外在大部分QR迭代中,最终形成的三角矩阵都是上三角矩阵。其实也可以形成下三角矩阵,不过旋转矩阵要乘在右边。并且根据我实际计算,再右乘时应当乘以右上角为-sin的矩阵。(此处不保证正确性,欢迎各位批评指正)。
关于两种平面旋转矩阵的详细介绍,请参考博客:https://blog.csdn.net/tangyongkang/article/details/5484636link
关于given旋转分解矩阵的详细例题步骤,请参考博客:https://blog.csdn.net/tingary/article/details/85258881?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
link