Текст подпрограммы и версий ( Фортран )
afp1r.zip , afp1c.zip , afp1d.zip
Тексты тестовых примеров ( Фортран )
tafp1r.zip , tafp1c.zip , tafp1d.zip
Текст подпрограммы и версий ( Си )
afp1r_c.zip , afp1c_c.zip , afp1d_c.zip
Тексты тестовых примеров ( Си )
tafp1r_c.zip , tafp1c_c.zip , tafp1d_c.zip
Текст подпрограммы и версий ( Паскаль )
afp1r_p.zip , afp1c_p.zip , afp1e_p.zip
Тексты тестовых примеров ( Паскаль )
tafp1r_p.zip , tafp1c_p.zip , tafp1e_p.zip

Подпрограмма:  AFP1R

Назначение

LQ - разложение вещественной прямоугольной матрицы размера N*М (N ≤ М) методом отражений.

Математическое описание

Выполняется факторизация матрицы А вида А = LQ, где Q - унитарная, L - нижняя треугольная матрица. Матрица L получается в результате умножения матрицы А на последовательность преобразований отражения Q1, Q2, ..., QN таких, что АQ1Q2... QN = L , при этом

     Q = QNT ... Q2TQ1T . 

В.В.Воеводин, Л.И.Карышева, Г.Д.Ким, Р.В.Петрина, Комплекс алгоритмов, основанных на преобразованиях отражения, в пакете линейной алгебры, Сб. "Численный анализ на ФОРТРАНе", вып.3, Изд. МГУ, 1973.

Использование

    SUBROUTINE AFP1R (A, N, M, W) 

Параметры

A - двумерный N*М массив, в котором задается исходная матрица (тип: RЕАL); в результате работы подпрограммы в массиве А на соответствующих местах запоминаются поддиагональные элементы матрицы L, в остальной части массива в последовательных строках запоминаются векторы, порождающие матрицы отражения Q1, Q2, ..., QN ;
N, M - заданные размеры исходной матрицы, причем N ≤ М (тип: целый);
W - одномерный массив длины М, используемый подпрограммой как рабочий (тип: RЕАL); в результате работы подпрограммы в первых N компонентах W запоминаются диагональные элементы матрицы L.

Версии

AFP1C - LQ - разложение методом отражения для прямоугольной N*М (N ≤ М) комплексной матрицы;
AFP1D - LQ - разложение методом отражения для прямоугольной N на М (N ≤ М) вещественной матрицы, заданной с удвоенной точностью.

Вызываемые подпрограммы: нет

Замечания по использованию

  1. 

В подпрограмме АFР1С массивы А, W имеют тип СОМРLЕХ.

  2.  В подпрограмме АFР1D массивы А, W имеют тип DОUВLЕ РRЕСISIОN.

Пример использования

      DIMENSION  A(3, 5), V(5)
      DATA  A /1., 0., 1., 2., 1., 3., 0., 3*1., 2., 0., -1., 1., 0./
      CALL  AFP1R (A, 3, 5, V)

Результат:

                 |  1.174   0.644   0.000   0.322  -0.322 |
      A  =    | -1.134   1.076   0.389   0.657   0.510 |  , 
                 | -2.646  -0.418  1.118  -0.853   0.150 |

       (V(I), I = 1, 3)  =  -2.646, -2.390, -1.956.

Это означает, что

                 | -2.646   0.          0.         0.  0.|
      R  =    | -1.134  -2.390    0.         0.  0.|  , 
                 | -2.646  -0.418  -1.956   0.  0.|

      Qi  =  I - Wi * WiT ,   i = 1, 2, 3 ,
 где
      W1T  =   (1.174,  0.644,  0.,  0.322,  -0.322) ,

      W2T  =   (0.,  1.076,  0.389,  0.657,  0.150) , 

      W3T  =   (0.,  0.,  1.118,  -0.853,  0.150) .