Текст подпрограммы и версий ( Фортран ) aet1r.zip , aet1d.zip |
Тексты тестовых примеров ( Фортран ) taet1r.zip , taet1d.zip |
Текст подпрограммы и версий ( Си ) aet1r_c.zip , aet1d_c.zip |
Тексты тестовых примеров ( Си ) taet1r_c.zip , taet1d_c.zip |
Текст подпрограммы и версий ( Паскаль ) aet1r_p.zip , aet1e_p.zip |
Тексты тестовых примеров ( Паскаль ) taet1r_p.zip , taet1e_p.zip |
Вычисление всех собственных значений и собственных векторов вещественной верхней матирцы Хессенберга QR - алгоpитмом с двойным сдвигом.
Подпрограмма АЕТ1R вычисляет собственные значения верхней матрицы Хессенберга QR - алгоpитмом с двойным сдвигом, информация о выполняемых преобразованиях запоминается и используется потом для вычисления собственных векторов матрицы Хессенберга.
Уилкинсон, Райнш. Справочник алгоритмов на языке АЛГОЛ. Линейная алгебра, М.: "Машиностроение", 1976.
SUBROUTINE AET1R (NM, N, LOW, IGH, H, WR, WI, Z, IERR)
Параметры
NM - | число строк двумерных массивов Н и Z, указанное при описании этих массивов в вызывающей подпрограмме (тип: целый); |
N - | порядок исходной матрицы (тип: целый); |
LOW - IGH | выходные параметры подпрограммы АМВ1R (тип: целый); если матрица не масштабировалась, то можно взять LОW = 1, IGН = N; |
H - | вещественный двумерный массив размерности NМ на N, содержащий на входе в подпрограмму в своих первых N строках исходную матрицу Хессеберга; |
WR, WI - | вещественные векторы длины N, содержащие на выходе из подпрограммы соответственно вещественные и мнимые части вычисленных собственных значений, при этом комплексно - сопряженные собственные значения располагаются последовательно, причем первым идет собственное значение с положительной мнимой частью; |
Z - | вещественный двумерный массив размерности NМ на N, содержащий на выходе из подпрограммы вычисленные собственные векторы, при этом: |
если WI (J) = 0 , | то соответствующий собственный вектор расположен в J - ом столбце массива Z; |
если WI (J) > 0 , | то в J - ом и (J + 1) - ом столбцах располагаются соответственно вещественная и мнимая части собственного вектора; |
если WI (J) < 0 , | то собственный вектор не запоминается, т.к. может быть получен как сопряженный собственному вектору, соответствующему (J - 1) - ому собственному значению; |
собственные векторы не нормируются; | |
IERR - | целочисленная переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; на выходе из подпрограммы IЕRR равно индексу собственного значения для вычисления которого требуется более 30 итераций, при этом собственные значения с индексами IЕRR + 1, IЕRR + 2, ...,N вычислены правильно, а собственные векторы не вычисляются; если вычислены все собственные значения и собственные векторы, то IЕRR = 0 . |
Версии
AET1D - | вычисление всех собственных значений и собственных векторов вещественной матрицы Хессенберга, заданной с двойной точностью, с помощью QR - алгоритма с двойным сдвигом. |
Вызываемые подпрограммы
UTAE12 - | подпрограмма выдачи диагностических сообщений при работе подпрограмм АЕТ1R и АЕТ1D. |
Замечания по использованию
1. |
В подпрограмме АЕТ1D параметры Н, WR, WI, Z имеют тип DОUВLЕ РRЕСISIОN. | |
2. | Подпрограмма АЕТ1R (АЕТ1D) не сохраняет исходный массив Z. |
DIMENSION A(3, 3), WR(3), WI(3), Z(3, 3) DATA A /2., 0., 0., 4., 3., 1., 4., 1., 3./ N = 3 CALL AET1R (3, 3, 1, 3, A, WR, WI, Z, IERR) Результаты: IERR = 0 , WR = (2., 4., 2.) , WI = (0., 0., 0.) | 1 4a 0 | Z = | 0 a -a | | 0 a a | где a = 0.707106781187