Текст подпрограммы и версий ( Фортран ) aeh4c.zip , aeh4p.zip |
Тексты тестовых примеров ( Фортран ) taeh4c.zip , taeh4p.zip |
Текст подпрограммы и версий ( Си ) aeh4c_c.zip , aeh4p_c.zip |
Тексты тестовых примеров ( Си ) taeh4c_c.zip , taeh4p_c.zip |
Текст подпрограммы и версий ( Паскаль ) aeh4c_p.zip , aeh4z_p.zip |
Тексты тестовых примеров ( Паскаль ) taeh4c_p.zip , taeh4z_p.zip |
Вычисление принадлежащих заданному интервалу собственных значений и их номеров комплексной эрмитовой матрицы.
Комплексная эрмитова матрица А последовательностью унитарных подобных преобразований приводится к симметричной трехдиагональной форме F = V*Q*AQV (где Q - произведение унитарных матриц, V - диагональная унитарная матрица), которая используется для вычисления принадлежащих заданному интервалу собственных значений и их номеров методом бисекций.
Уилкинсон, Pайнш. "Справочник алгоритмов на языке АЛГОЛ. Линейная алгебра", М., "Машиностроение", 1976.
SUBROUTINE AEH4C (N, AR, AI, EV, RLB, RUB, MM, M, IRAB, RAB1, RAB2, IERR)
Параметры
N - | порядок исходной матрицы (тип: целый); |
AR, AI - | вещественные двумерные массивы размера N на N, содержащие соответственно действительную и мнимую части исходной матрицы; в подпрограмме используется только строгий нижний треугольник массива АR и полный нижний треугольник массива АI; |
EV - | вещественный вектор длины N, содержащий вычисленные в возрастающем порядке собственные значения, принадлежащие заданному интервалу; |
RLB - RUB | заданные нижняя и верхняя границы интервала собственных значений (тип: вещественный); если RLВ > RUВ, то собственные значения не вычисляются; |
MM - | оценка сверху числа собственных значений исходной матрицы, принадлежащих заданному интервалу, ММ ≤ N (тип: целый); если вычисленное число М собственных значений, принадлежащих заданному интервалу, больше, чем ММ, то собственные значения не вычисляются; |
M - | целая переменная, в которой запоминается вычисленное число собственных значений, принадлежащих заданному интервалу; |
IRAB - | целый вектор длины ММ, содержащий индексы расположенных в возрастающем порядке М собственных значений; |
RAB1 - | вещественный двумерный массив размера 2 на N, используемый как рабочий; |
RAB2 - | вещественный вектор длины 5 на N, используемый как рабочий; |
IERR - |
целая переменная, служащая для сообщения об
ошибках, обнаруженных в ходе работы подпрограммы; при этом IЕRR=3*N+1, если значение ММ меньше числа М вычисленных в заданном интервале собственных значений, при этом собственные значения не вычисляются. |
Версии
AEH4P - | вычисление принадлежащих заданному интервалу собственных значений и их номеров комплексной эрмитовой матрицы, заданной с удвоенной точностью. Массивы АR, АI, ЕV, RАВ1, RАВ2 и переменные RLВ, RUВ имеют тип DОUВLЕ РRЕСISIОN. |
Вызываемые подпрограммы
UTAE10 - | подпрограмма выдачи диагностических сообщений при работе подпрограмм AEH4C и AEH4P. |
Замечания по использованию
Подпрограммы AEH4C(P) сохраняют полный верхний треугольник массива АR и строгий верхний треугольник массива АI, в остальных элементах массивов АR и АI помещается информация о преобразованиях Q. Матрица преобразования V запоминается в массиве RАВ1. | |
Подпрограмма АЕH4C использует служебные подпрограммы AER4R, AER7R. Подпрограмма АЕH4P использует служебные подпрограммы AA01P, AER4D, AER7D. |
DIMENSION AR(4, 4), AI(4, 4), EV(3), RAB1(2, 4), RAB2(20), * IRAB(3) DATA AR /1., 0.42, 0.54, 0.66, 0.42, 1., 0.32, 0.44, 0.54, 0.32, * 1., 0.22, 0.66, 0.44, 0.22, 1./ DATA AI /16*0./ N = 4 MM = 3 RLB = 0. RUB = 1. CALL AEH4C (N, AR, AI, EV, RLB, RUB, MM, M, IRAB, RAB1, * RAB2, IERR) Результаты: Собственные значения, вычисленные в интервале (0., 1.) EV = (0.24226070826, 0.63828380281, 0.79670668886) , IERR = 0