|
Текст подпрограммы и версий ( Фортран ) 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