Текст подпрограммы и версий ( Фортран ) 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 |
Левосторонние преобразования вектора последовательностью матриц вращения, упакованных под главной диагональю прямоугольной матрицы размера N * М (N ≥ М).
Вектор B длины N последовательно умножается слева на матрицы
вращения R21, ..., RN1,
..., RМ+1М,
...,RNМ , упакованные под главной диагональю
заданной прямоугольной матрицы А размера 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 )