LAPACKのQRルーチンは、Qをハウスホルダーリフレクターとして保存します。反射ベクトルをでスケーリングするため、結果の最初の要素はになるため、保存する必要はありません。そして、必要なスケールファクターを含む個別のベクトルを格納します。したがって、リフレクタマトリックスは次のようになります
ここで、は正規化されていません。教科書では、反射板の行列は
ここで、は正規化されています。
LAPACKはを正規化する代わりに、でスケーリングするのはなぜですか?
必要なストレージは同じであり(代わりに、を格納する必要があります)、と乗算する必要がないため、適用をより高速に実行できます(教科書バージョンのとの乗算を最適化できます)。単純な正規化の代わりに、はによってスケーリングされます。
(私の質問の理由は、QRおよびSVDルーチンを作成していることです。私がそれに従う必要があるかどうかにかかわらず、この決定の理由を知りたいのですが)