ac プログラムで Lapack lib の F77_NAME(dgeqrf) 関数を使用して qr 分解を計算したいと考えています。
行列 3x3 の場合:
12.000000 -51.000000 4.000000
6.000000 167.000000 -68.000000
-4.000000 24.000000 -41.000000
出力 3x3 (R 行列と Q の構築に使用されるいくつかのベクトルの組み合わせ)(線形形式) を取得します。
-52.545219, -0.790144, 0.061972, 165.895209, -70.906839, -0.520684, 27.328842, -31.566433, -23.015097
次に、Lapack の F77_NAME(dorgqr) を使用して Q 行列を抽出し、出力 3x3 (線形形式) を取得します。
-0.228375, 0.970593, -0.076125, -0.618929, -0.084383, 0.780901, 0.751513, 0.225454, 0.619999
これはウィキペディアから取った例で、私の Q はウィキペディア Q とは異なるようです: http://en.wikipedia.org/wiki/QR_decomposition#Example_2
Fortran と C の配列表現の違いが原因でしょうか? 初期行列の転置は問題を解決しますか?