Текст подпрограммы и версий ( Фортран ) 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 |
Левосторонние преобразования вектора последовательностью матриц вращения, упакованных над верхней двухдиагональной частью прямоугольной матрицы размера 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 )