Текст подпрограммы и версий ( Фортран )
afp3r.zip , afp3c.zip , afp3d.zip
Тексты тестовых примеров ( Фортран )
tafp3r.zip , tafp3c.zip , tafp3d.zip
Текст подпрограммы и версий ( Си )
afp3r_c.zip , afp3c_c.zip , afp3d_c.zip
Тексты тестовых примеров ( Си )
tafp3r_c.zip , tafp3c_c.zip , tafp3d_c.zip
Текст подпрограммы и версий ( Паскаль )
afp3r_p.zip , afp3c_p.zip , afp3e_p.zip
Тексты тестовых примеров ( Паскаль )
tafp3r_p.zip , tafp3c_p.zip , tafp3e_p.zip

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

Назначение

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

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

Выполняется факторизация матрицы А вида РА = LQ, где Q - унитарная матрица, L - нижняя треугольная матрица, Р - матрица перестановок. Матрица Р осуществляет перестановку строк матрицы А и обеспечивает выполнение нормализованного процесса. Матрица Q строится как произведение матриц QNT, ..., Q2T, Q1T, где Q1, Q2, ... QN - преобразования отражения, приводящие матрицу РА к нижнему треугольному виду:

     PAQ1Q2 ... QN = L . 

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

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

    SUBROUTINE AFP3R (A, N, M, W, S) 

Параметры

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

Версии

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

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

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

  1. 

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

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

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

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

Результат:

                 |  1.141    0.793   0.264  0.000    0.000 |
      A  =    | -1.206    1.034   0.296  0.822   0.411 |   , 
                 | -2.111  -0.193  -1.209  0.509  -0.529 |

       ( (V(I), I = 1, 3)  =  -3.317,  -2.355,  1.584) , 

      L  =   (3,  2,  3) .

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

                 | -3.317   0.        0.        0.  0. |
      R  =    | -1.206  -2.355  0.        0.  0. |  , 
                 | -2.111  -0.193  1.584  0.  0. |

      Qi =  I - Wi * WiT ,    i = 1, 2, 3 ,
 где
      W1T  =   (1.141,  0.793,  0.264,  0.,  0.) ,

      W2T  =   (0.,  1.034,  0.296,  0.822,  0.411) ,

      W3T  =   (0.,  0.,  -1.209,  0.509,  -0.529) .