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

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

Назначение

Приведение прямоугольной матрицы А размера 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 |