LAPACK 的 QR 例程将 Q 存储为 Householder 反射器。它缩放反射向量和,所以结果的第一个元素变为,因此不必存储。它存储了一个单独的向量,其中包含所需的比例因子。所以反射矩阵是这样的:
在哪里未归一化。而在教科书中,反射矩阵是
在哪里被归一化。
为什么 LAPACK 可以扩展和,而不是对其进行规范化?
所需的存储是相同的(而不是,必须存储),然后,应用可以更快地完成,因为不需要乘以(乘以在教科书版本可以优化,如果不是简单的归一化,被缩放)。
(我的问题的原因是我正在编写一个QR和SVD例程,我想知道这个决定的原因,我是否需要遵循它)