Текст подпрограммы и версий ( Фортран ) 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 |
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) .