Текст подпрограммы и версий ( Фортран ) aeh4r.zip , aeh4d.zip |
Тексты тестовых примеров ( Фортран ) taeh4r.zip , taeh4d.zip |
Текст подпрограммы и версий ( Си ) aeh4r_c.zip , aeh4d_c.zip |
Тексты тестовых примеров ( Си ) taeh4r_c.zip , taeh4d_c.zip |
Текст подпрограммы и версий ( Паскаль ) aeh4r_p.zip , aeh4e_p.zip |
Тексты тестовых примеров ( Паскаль ) taeh4r_p.zip , taeh4e_p.zip |
Вычисление собственных значений, принадлежащих заданному интервалу, и их номеров вещественной симметрической матрицы.
Подпрограмма АЕН4R реализует алгоритм вычисления собственных значений, принадлежащих заданному интервалу, и их номеров уравнения Аx = λx для вещественной симметрической матрицы А.
Ортогональными преобразованиями Р матрица А приводится к симметрической трехдиагональной матрице А1 = РTАР, что позволяет воспользоваться методом бисекций для вычисления принадлежащих заданному интервалу собственных значений и их номеров задачи А1y = λy. При этом собственные значения этой и исходной задач совпадают.
Уилкинсон, Pайнш. "Справочник алгоритмов на языке АЛГОЛ. Линейная алгебра", М., "Машиностроение", 1976.
SUBROUTINE AEH4R (N, A, EV, RLB, RUB, MM, M, IRAB, RAB, IERR)
Параметры
N - | порядок исходной матрицы (тип: целый); |
A - | вещественный двумерный массив размера N на N, содержащий исходную матрицу; в подпрограмме используется только полный нижний треугольник матрицы А; |
EV - | вещественный вектор длины ММ, содержащий вычисленные в возрастающем порядке собственные значения, принадлежащие заданному интервалу; |
RLB - RUB | заданные нижняя и верхняя границы интервала собственных значений (тип: вещественный); если RLВ > RUВ, то собственные значения не вычисляются; |
MM - | оценка сверху числа собственных значений матрицы А, принадлежащих заданному интервалу, ММ ≤ N (тип: целый); если вычисленное число М собственных значений, принадлежащих заданному интервалу, больше, чем ММ, то собственные значения не вычисляются; |
M - | целая переменная, в которой запоминается вычисленное число собственных значений, принадлежащих заданному интервалу; |
IRAB - | целый вектор длины ММ, содержащий индексы расположенных в возрастающем порядке М собственных значений; |
RAB - | вещественный вектор длины 5 на N, используемый как рабочий; |
IERR - |
целая переменная, служащая для сообщения об
ошибках, обнаруженных в ходе работы подпрограммы; при этом IЕRR=3*N+1 - если значение ММ меньше числа вычисленных собственных значений М на интервале; при этом собственные значения не вычисляются. |
Версии
AEH4D - | вычисление собственных значений, принадлежащих заданному интервалу, и их номеров симметрической матрицы, заданной с удвоенной точностью. Массивы А, ЕV, RАВ и переменные RLВ, RUВ имеют тип DОUВLЕ РRЕСISIОN. |
Вызываемые подпрограммы
UTAE10 - | подпрограмма выдачи диагностических сообщений при работе подпрограмм АЕН4R и АЕН4D. |
Замечания по использованию
Подпрограммы АЕН4R(D) сохраняют полный верхний треугольник исходной матрицы, остальные элементы используются для запоминания ортогональных преобразований. | |
Подпрограмма АЕH4R использует служебные подпрограммы AER4R, AER18R. Подпрограмма АЕH4D использует служебные подпрограммы AER4D, AER18D. |
DIMENSION A(4, 4), EV(3), IRAB(3), RAB(20) DATA A /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./ N = 4 MM = 3 RLB = 0. RUB = 1. CALL AEH4R (N, A, EV, RLB, RUB, MM, M, IRAB, RAB, IERR) Результаты: Собственные значения в интервале (0., 1.): | 0.2422607 | EV = | 0.6382838 | , | 0.7967067 | IERR = 0