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

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

Назначение

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