Текст подпрограммы и версий ( Фортран ) am18r.zip , am18d.zip , am18c.zip |
Тексты тестовых примеров ( Фортран ) tam18r.zip , tam18d.zip , tam18c.zip |
Текст подпрограммы и версий ( Си ) am18r_c.zip , am18d_c.zip , am18c_c.zip |
Тексты тестовых примеров ( Си ) tam18r_c.zip , tam18d_c.zip , tam18c_c.zip |
Текст подпрограммы и версий ( Паскаль ) am18r_p.zip , am18e_p.zip , am18c_p.zip |
Тексты тестовых примеров ( Паскаль ) tam18r_p.zip , tam18e_p.zip , tam18c_p.zip |
Преобразование вектора последовательностью матриц отражения, упакованных над главной диагональю (включительно) прямоугольной матрицы размера N на М (N ≤ М).
Подпрограмма АМ18R вычисляет произведение
Q1 Q2 ... QN В ,
где Q1, Q2,..., QN - матрицы отражения размера M * N, B - заданный вектоp длины M. Матpицы отpажения Qi имеют вид
Qi = Е - Wi WiН ,
где Е - единичная матрица размера M * M,
Wi - вектор
длины M, первые i - 1 компонент
которого равны нулю.
Ненулевые компоненты векторов Wi, порождающих
матрицы Qi, задаются
в строках над главной диагональю (включительно)
прямоугольной матрицы A размера N * М
(N ≤ М), т.е.
Wi = ( 0, 0, ... , 0, ai i, ai i+1, ... , ai M )H .
Данная упаковка последовательности матриц отражения получается, например, в результате работы подпрограмм, реализующих приведение прямоугольной матрицы А размера N * М (N ≤ М) к нижнему треугольному виду (АFР3R) или к нижнему двухдиагональному виду (АFР5R) методом отражений.
SUBROUTINE AM18R (A, N, M, B)
Параметры
A - | вещественный двумерный массив размера N * М, в котором в упакованном виде хранится информация о матрицах отражения; |
N, M - | число строк и столбцов матрицы А соответственно, N ≤ М (тип: целый); |
B - | вещественный одномерный массив длины М, в котором задается исходный вектор B; в результате работы подпрограммы на месте B запоминается преобразованный вектор Q1 Q2 ... QN В. |
Версии
AM18D - | преобразование вектора последовательностью матриц отражения, упакованных над главной диагональю (включительно) прямоугольной матрицы размера N * М (N ≤ М), с повышенной точностью. |
AM18C - | преобразование комплексного вектора последовательностью комплексных матриц отражения, упакованных над главной диагональю (включительно) прямоугольной матрицы размера N * М (N ≤ М). |
Вызываемые подпрограммы: нет.
Замечания по использованию
1. |
В подпрограмме АМ18D параметры А и B имеют тип DОUВLЕ РRЕСISIОN. | |
2. | В подпрограмме AM18C параметры А и B имеют тип СОМРLЕХ. |
DIMENSION A(5, 6), B(6), T(6), IS(5) DATA A /1., 3., 0., 1., 2*3., - 2., 0., 1., 5., 2., 0., 5*1., * 2., 0., 1., - 1., 2*1., 2., 2*0., 2*1., 3., 2./ DATA B /1., 0., 2., - 1., 1., 0./ N = 5 M = 6 CALL AFP3R (A, N, M, T, IS) CALL AM18R (A, N, M, B) Результат: B = ( 0.04233, - 0.869395, 0.62655, 0.92835, - 1.28063, - 1.82974 )