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