Текст подпрограммы и версий ( Фортран ) afp9r.zip , afp9d.zip , afp9c.zip |
Тексты тестовых примеров ( Фортран ) tafp9r.zip , tafp9d.zip , tafp9c.zip |
Текст подпрограммы и версий ( Си ) afp9r_c.zip , afp9d_c.zip , afp9c_c.zip |
Тексты тестовых примеров ( Си ) tafp9r_c.zip , tafp9d_c.zip , tafp9c_c.zip |
Текст подпрограммы и версий ( Паскаль ) afp9r_p.zip , afp9c_p.zip , afp9e_p.zip |
Тексты тестовых примеров ( Паскаль ) tafp9r_p.zip , tafp9c_p.zip , tafp9e_p.zip |
Приведение прямоугольной матрицы А размера N*М (N ≤ М) к нижнему треугольному виду преобразованиями вращения.
Для прямоугольной матрицы А размера N*М (N і М) строится последовательность матриц вращения T1 2,T1 3, ..., TN M размера M*M такая, что
AT1 2 ... TN M = L ,
где L - нижняя треугольная матрица размера N*М. В результате нижняя треугольная матрица L запоминается на месте соответствующих элементов матрицы А.
Матрицы Ti j, i = 1, ..., N, j = 2, ..., М, i < j, являющиеся матрицами плоского вращения в плоскости ( i, j ), у которых элементы Ti i = Tj j = C, Ti j = - S, Tj i = S, а остальные элементы главной диагонали равны 1, свертываются в число t = S / (1 + С), по которому они восстанавливаются с помощью формул
C = (1 - | t |2) / (1 + | t |2) , S = 2t / (1 + | t |2) ,
и упаковываются над нижней треугольной частью матрицы А : информация о матрице Ti j запоминается на месте элемента с индексами ( i, j ).
В.В.Воеводин, Вычислительные основы линейной алгебры, М., Наука, 1977.
SUBROUTINE AFP9R (A, N, M)
Параметры
A - | двумерный массив размера N*М (N ≤ М), в котором задается исходная матрица А; в результате работы подпрограммы нижняя треугольная матрица L запоминается на месте соответствующих элементов матрицы А, а матрицы вращения Тi j упаковываются над нижней треугольной частью матрицы А (тип: вещественный); |
N, M - | число строк и столбцов матрицы А, причем N ≤ М (тип: целый). |
Версии
AFP9D - | приведение прямоугольной матрицы размера N*М (N ≤ М), заданной с двойной точностью, к нижнему треугольному виду преобразованиями вращения. |
AFP9C - | приведение прямоугольной комплексной матрицы размера N*М (N ≤ М) к нижнему треугольному виду преобразованиями вращения. |
Вызываемые подпрограммы: нет
Замечания по использованию
1. |
В случае надобности преобразования вектора матрицами вращения ТN M,...,Т1 2, упакованными в матрице А описанным выше способом, можно воспользоваться подпрограммой АМ10R. | |
2. |
В подпрограмме АFР9D параметр А имеет тип DОUВLЕ РRЕСISIОN. | |
3. | В подпрограмме АFР9С параметр А имеет тип СОМРLЕХ. |
DIMENSION A(3, 5) DATA A /0.6, 0.4, 2.6, 5*0., 0.6, -0.8, -2.2, -6.8, 2*0., -0.8/ N = 3 M = 5 CALL AFP9R (A, N, M) Результат: | 1 0 0 -0.5 0 | A = | 2 -1 0 1 0 | | 7 -2 1 0 -0.5 | Это означает, что | 1 0 0 0 0 | L = | 2 -1 0 0 0 | | 7 -2 1 0 0 |