Текст подпрограммы и версий ( Фортран ) afp8r.zip , afp8d.zip , afp8c.zip |
Тексты тестовых примеров ( Фортран ) tafp8r.zip , tafp8d.zip , tafp8c.zip |
Текст подпрограммы и версий ( Си ) afp8r_c.zip , afp8d_c.zip , afp8c_c.zip |
Тексты тестовых примеров ( Си ) tafp8r_c.zip , tafp8d_c.zip , tafp8c_c.zip |
Текст подпрограммы и версий ( Паскаль ) afp8r_p.zip , afp8e_p.zip , afp8c_p.zip |
Тексты тестовых примеров ( Паскаль ) tafp8r_p.zip , tafp8e_p.zip , tafp8c_p.zip |
Приведение прямоугольной матрицы А размера N*М (N і М) к верхнему треугольному виду преобразованиями вращения.
Для прямоугольной матрицы А размера N*М (N і М) строится последовательность матриц вращения R2 1,R3 1, ..., RN M размера N*N такая, что
RN M ... R2 1A = L ,
где L - верхняя треугольная матрица размера N*М. В результате верхняя треугольная матрица L запоминается на месте соответствующих элементов матрицы А.
Матрицы Ri j, i = 2, ..., N, j = 1, ..., М, i > j, являющиеся матрицами плоского вращения в плоскости ( i, j ), у которых элементы Ri i = Rj j = C, Ri j = - S, Rj i = S, а остальные элементы главной диагонали равны 1, свертываются в число t = S / (1 + С), по которому они восстанавливаются с помощью формул
C = (1 - | t |2) / (1 + | t |2) , S = 2t / (1 + | t |2) ,
и упаковываются под верхней треугольной частью матрицы А : информация о матрице Ri j запоминается на месте элемента с индексами ( i, j ).
В.В.Воеводин, Вычислительные основы линейной алгебры, М., Наука, 1977.
SUBROUTINE AFP8R (A, N, M)
Параметры
A - | двумерный массив размера N*М (N і М), в котором задается исходная матрица А; в результате работы подпрограммы верхняя треугольная матрица L запоминается на месте соответствующих элементов матрицы А, а матрицы вращения Ri j упаковываются под верхней треугольной частью матрицы А (тип: целый); |
N, M - | число строк и столбцов матрицы А, причем N і М (тип: целый). |
Версии
AFP8D - | приведение прямоугольной матрицы размера N*М (N і М) заданной с двойной точностью, к верхнему треугольному виду преобразованиями вращения. |
AFP8C - | приведение прямоугольной комплексной матрицы размера N*М (N і М) к верхнему треугольному виду преобразованиями вращения. |
Вызываемые подпрограммы: нет
Замечания по использованию
1. |
В случае надобности преобразования вектора матрицами вращения R2 1,R3 1,...,RN M, упакованными в матрице А описанным выше способом, можно воспользоваться подпрограммой АМ07R. | |
2. |
В подпрограмме АFР8D параметр А имеет тип DОUВLЕ РRЕСISIОN. | |
3. | В подпрограмме АFР8С параметр А имеет тип СОМРLЕХ. |
DIMENSION A(5, 3) DATA A /0.6, 0.8, 3*0., 0.4, 2.2, 3*0., 2.6, 6.8, 0.6, 0.8, 0.0/ N = 5 M = 3 CALL AFP8R (A, N, M) Результат: | 1 2 7 | | -0.5 1 2 | A = | 0 0 1 | | 0 0 -0.5 | | 0 0 0 | Это означает, что | 1 2 7 | | 0 1 2 | L = | 0 0 1 | | 0 0 0 | | 0 0 0 |