我想在 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 数组表示之间的差异可能是原因吗?初始矩阵的转置会解决问题吗?