Текст подпрограммы и версий ( Фортран )
am07r.zip , am07d.zip , am07c.zip
Тексты тестовых примеров ( Фортран )
tam07r.zip , tam07d.zip , tam07c.zip
Текст подпрограммы и версий ( Си )
am07r_c.zip , am07d_c.zip , am07c_c.zip
Тексты тестовых примеров ( Си )
tam07r_c.zip , tam07d_c.zip , tam07c_c.zip
Текст подпрограммы и версий ( Паскаль )
am07r_p.zip , am07e_p.zip , am07c_p.zip
Тексты тестовых примеров ( Паскаль )
tam07r_p.zip , tam07e_p.zip , tam07c_p.zip

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

Назначение

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

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

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

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

    SUBROUTINE  AM07R (A, N, M, B) 

Параметры

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

Версии

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

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

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

  1. 

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

  2. 

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

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

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

       DIMENSION  A(5, 3), B(5)
       DATA  A /0., 0.5, 0., 0., 0.5, 3*0., 0.5, 6*0./
       DATA  B /5*1./
       N = 5
       M = 3
       CALL  AM07R (A, N, M, B)

Результат:  В  =  ( - 0.92, 0.04, 1.0, 1.72, 0.44 )