Текст подпрограммы и версий ( Фортран ) afp2r.zip , afp2d.zip , afp2c.zip |
Тексты тестовых примеров ( Фортран ) tafp2r.zip , tafp2d.zip , tafp2c.zip |
Текст подпрограммы и версий ( Си ) afp2r_c.zip , afp2d_c.zip , afp2c_c.zip |
Тексты тестовых примеров ( Си ) tafp2r_c.zip , tafp2d_c.zip , tafp2c_c.zip |
Текст подпрограммы и версий ( Паскаль ) afp2r_p.zip , afp2e_p.zip , afp2c_p.zip |
Тексты тестовых примеров ( Паскаль ) tafp2r_p.zip , tafp2e_p.zip , tafp2c_p.zip |
QR - разложение вещественной прямоугольной матрицы размера N*М (N ≥ М) нормализованным процессом метода отражений.
Выполняется факторизация матрицы А вида АР = QR, где Q - унитарная матрица, R - верхняя треугольная матрица, Р - матрица перестановок. Матрица Р осуществляет перестановку столбцов А и обеспечивает выполнение нормализованного процесса. Матрица Q строится как произведение матриц Q1T, Q2T, ..., QMT, где Q1, Q2, ..., QM - преобразования отражения, приводящие матрицу АР к верхнему треугольному виду:
QMQM-1 ... Q1AP = R
В.В.Воеводин, Л.И.Карышева, Г.Д.Ким, Р.В.Петрина, комплекс алгоритмов, основанных на преобразованиях отражения, в пакете линейной алгебры, Сб. "Численный анализ на ФОРТРАНе", вып.3, Изд. МГУ, 1973.
SUBROUTINE AFP2R (A, N, M, W, S)
Параметры
A - | двумерный N*М массив, в котором задается исходная матрица (тип: RЕАL); в результате работы подпрограммы в массиве А на соответствующих местах запоминаются наддиагональные элементы матрицы R, в остальной части массива в последовательных столбцах запоминаются векторы, порождающие матрицы отражения Q1, Q2, ..., QM ; |
N, M - | заданные размеры исходной матрицы, причем N ≥ М (тип: целый); |
W - | одномерный массив длины N, используемый подпрограммой как рабочий (тип: RЕАL); в результате работы подпрограммы в первых М компонентах W запоминаются диагональные элементы матрицы R; |
S - | одномерный массив длины М, в котором запоминается вектор, порождающий матрицу перестановок (тип: целый); в S (К) запоминается номер столбца, переставленного с К - ым столбцом текущей матрицы на К - ом шаге преобразования. |
Версии
AFP2C - | QR - разложение нормализованным процессом метода отражений для прямоугольной N*М (N ≥ М) комплексной матрицы; |
AFP2D - | QR - разложение нормализованным процессом метода отражений для прямоугольной N*М (N ≥ М) вещественной матрицы, заданной с удвоенной точностью. |
Вызываемые подпрограммы: нет
Замечания по использованию
1. |
В подпрограмме АFР2С массивы А, W имеют тип СОМРLЕХ. | |
2. | В подпрограмме АFР2D массивы А, W имеют тип DОUВLЕ РRЕСISIОN. |
DIMENSION A(7, 4), V(7), L(4) DATA A /1., 0., 2., 1., -1., -1., 0., 3., 2., 1., -3., 2*1., 3*2., * -1., -4., 3*2., 4., 3., -2., 2*0., 2., 0./ CALL AFP2R (A, 7, 4, V, L) Результат: | 1.153 -3.288 1.315 -4.768 | | 0.285 1.120 -0.493 -0.493 | | -0.143 -0.208 1.357 -2.455 | A = | -0.570 0.684 0.149 1.334 | | 0.285 -0.342 -0.224 -1.350 | | 0.285 0.037 -0.282 -0.425 | | 0.285 -0.342 0.076 -1.423 | (V(I), I = 1, 4) = -6.083, -4.711, -2.455, 7.797*10- 12 , L = (3, 4, 3, 4) . Это означает, что | -6.083 -3.288 1.315 -4.768 | | 0. -4.711 -0.493 -0.493 | | 0. 0. -2.455 -2.455 | R = | 0. 0. 0. 7.797*10-12 | , | 0. 0. 0. 0. | | 0. 0. 0. 0. | | 0. 0. 0. 0. | Qi = I - Wi * WiT , i = 1, 2, 3, 4 , где W1T = (1.153, 0.285, -0.143, -0.570, 0.285, 0.285, 0.285) , W2T = (0., 1.120, -0.208, 0.684, -0.342, 0.037, -0.342) , W3T = (0., 0., 1.357, 0.149, -0.224, -0.282, 0.076) , W4T = (0., 0., 0., -1.084, 0.430, 0.538, 0.592) .