Я хочу вычислить декомпозицию qr, используя функцию F77_NAME (dgeqrf) из библиотеки Lapack в программе на c.
Для матрицы 3х3:
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
Затем я использую F77_NAME (dorgqr) из Lapack, чтобы извлечь матрицу 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?
Будет ли транспонирование на исходной матрице решить проблему?