Текст подпрограммы и версий ( Фортран )
am08r.zip , am08d.zip , am08c.zip
Тексты тестовых примеров ( Фортран )
tam08r.zip , tam08d.zip , tam08c.zip
Текст подпрограммы и версий ( Си )
am08r_c.zip , am08d_c.zip , am08c_c.zip
Тексты тестовых примеров ( Си )
tam08r_c.zip , tam08d_c.zip , tam08c_c.zip
Текст подпрограммы и версий ( Паскаль )
am08r_p.zip , am08e_p.zip , am08c_p.zip
Тексты тестовых примеров ( Паскаль )
tam08r_p.zip , tam08e_p.zip , tam08c_p.zip

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

Назначение

Левосторонние преобразования вектора последовательностью матриц вращения, упакованных над верхней двухдиагональной частью прямоугольной матрицы размера N * М (N ≥ М).

Математическое описание

Вектор B длины М последовательно умножается слева на матрицы вращения  ТМ - 1 М, ТМ-2 М, ..., Т2 3,  упакованные над верхней двух диагональной частью заданной прямоугольной матрицы А размера N*М (N ≥ М) таким образом, что если  t = А(i-1, j),  i < j, то матрица  Тi j размера М*М является матрицей плоского вращения в плоскости (i, j), у которой элементы  Ti i = Tj j = С,  Ti j = -S,  Tj i = S,  а остальные элементы главной диагонали равны 1,
где  С = (1 - | t |2 ) / (1 + | t |2) ,  S = 2t / (1 + | t |2).

Использование

    SUBROUTINE  AM08R (A, N, M, B) 

Параметры

A - двумерный массив размера N * М, содержащий прямоугольную матрицу, над верхней двухдиагональной частью которой хранится в упакованном виде последовательность матриц вращения (тип: вещественный);
N, M - число строк и столбцов матрицы  А, причем N ≥ М (тип: целый);
B - одномерный массив длины  М, в котором задается исходный вектор; в результате работы подпрограммы на месте  B запоминается преобразованный вектор (тип: вещественный).

Версии

AM08D - левосторонние преобразования вектора последовательностью матриц вращения с повышенной точностью.
AM08C - левосторонние преобразования комплексного вектора последовательностью комплексных матриц вращения.

Вызываемые подпрограммы: нет.

Замечания по использованию

  1. 

Заданная в необходимой форме последовательность матриц вращения, используемых данной подпрограммой, получается, например, в результате работы подпрограммы, реализующей приведение прямоугольной матрицы  А размера N * М (N ≥ М) к верхнему треугольному виду (АFР8R) методом вращений.

  2. 

В подпрограмме АМ08D параметры  А и  B имеют тип DОUВLЕ РRЕСISIОN.

  3.  В подпрограмме AM08C параметры  А и  B имеют тип СОМРLЕХ.

Пример использования

       DIMENSION  A(5, 4), B(5)
       DATA  B /5*1./
       DO 2  I = 1, 5
       DO 2  J = 1, 4
    2 A(I,J) = 1.
       A(2,4) = 0.5
       N = 5
       M = 4
       CALL  AM08R (A, N, M, B)

Результат:    В  =  ( 1.0, 0.2, - 1.4, 1.0, 1.0 )