LAPACKが(反射ベクトルを正規化する代わりに)QR分解でを使用する理由は何ですか?
LAPACKのQRルーチンは、Qをハウスホルダーリフレクターとして保存します。反射ベクトルをでスケーリングするため、結果の最初の要素はになるため、保存する必要はありません。そして、必要なスケールファクターを含む個別のベクトルを格納します。したがって、リフレクタマトリックスは次のようになりますvvv1/v11/v11/v_1111ττ\tauH=I−τvvT,H=I−τvvT,H=I-\tau v v^T, ここで、は正規化されていません。教科書では、反射板の行列はvvv H=I−2vvT,H=I−2vvT,H = I-2vv^T, ここで、は正規化されています。vvv LAPACKはを正規化する代わりに、でスケーリングするのはなぜですか?vvv1/v11/v11/v_1 必要なストレージは同じであり(代わりに、を格納する必要があります)、と乗算する必要がないため、適用をより高速に実行できます(教科書バージョンのとの乗算を最適化できます)。単純な正規化の代わりに、はによってスケーリングされます。ττ\tauv1v1v_1HHHττ\tau222vvv2–√/∥v∥2/‖v‖\sqrt 2/\|v\| (私の質問の理由は、QRおよびSVDルーチンを作成していることです。私がそれに従う必要があるかどうかにかかわらず、この決定の理由を知りたいのですが)