Текст подпрограммы и версий ( Фортран ) am10r.zip , am10d.zip , am10c.zip |
Тексты тестовых примеров ( Фортран ) tam10r.zip , tam10d.zip , tam10c.zip |
Текст подпрограммы и версий ( Си ) am10r_c.zip , am10d_c.zip , am10c_c.zip |
Тексты тестовых примеров ( Си ) tam10r_c.zip , tam10d_c.zip , tam10c_c.zip |
Текст подпрограммы и версий ( Паскаль ) am10r_p.zip , am10e_p.zip , am10c_p.zip |
Тексты тестовых примеров ( Паскаль ) tam10r_p.zip , tam10e_p.zip , tam10c_p.zip |
Левосторонние преобразования вектора последовательностью матриц вращения, упакованных над главной диагональю прямоугольной матрицы размера N * М (N ≤ М).
Вектор B длины М последовательно умножается слева на матрицы
вращения ТN М, ТN М-1,
..., Т1 2, упакованные над главной
диагональю заданной прямоугольной матрицы А размера N*М
(N ≤ М) таким образом, что если
t = А(i, j), то матрица Тi j
размера M*M является матрицей плоского вращения в
плоскости (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 AM10R (A, N, M, B)
Параметры
A - | двумерный массив размера N * М, содержащий прямоугольную матрицу, над главной диагональю которой хранится в упакованном виде последовательность матриц вращения (тип: вещественный); |
N, M - | число строк и столбцов матрицы А, причем N ≤ М (тип: целый); |
B - | одномерный массив длины М, в котором задается исходный вектор; в результате работы подпрограммы на месте B запоминается преобразованный вектор (тип: вещественный). |
Версии
AM10D - | левосторонние преобразования вектора последовательностью матриц вращения с повышенной точностью. |
AM10C - | левосторонние преобразования комплексного вектора последовательностью комплексных матриц вращения. |
Вызываемые подпрограммы: нет.
Замечания по использованию
1. |
Заданная в необходимой форме последовательность матриц вращения, используемых данной подпрограммой, получается, например, в результате работы подпрограмм, реализующих приведение прямоугольной матрицы А размера N * М (N ≤ М) к нижнему двухдиагональному виду (АFР7R) или к нижнему треугольному виду (АFР9R) методом вращений. | |
2. |
В подпрограмме АМ10D параметры А и B имеют тип DОUВLЕ РRЕСISIОN. | |
3. | В подпрограмме AM10C параметры А и B имеют тип СОМРLЕХ. |
DIMENSION A(4, 5), B(5) DATA A /0., 0., 0.5, 1., 3*0., 1., 0., 3*1., 0.5, 6*1., 0.5/ DATA B /5*1./ CALL AM10R (A, 4, 5, B) Результат: В = ( 0.2, - 0.2, 1.4, - 1.4, 1.0 )