|
Текст подпрограммы и версий ( Фортран ) aeb3r.zip , aeb3d.zip |
Тексты тестовых примеров ( Фортран ) taeb3r.zip , taeb3d.zip |
|
Текст подпрограммы и версий ( Си ) aeb3r_c.zip , aeb3d_c.zip |
Тексты тестовых примеров ( Си ) taeb3r_c.zip , taeb3d_c.zip |
|
Текст подпрограммы и версий ( Паскаль ) aeb3r_p.zip , aeb3e_p.zip |
Тексты тестовых примеров ( Паскаль ) taeb3r_p.zip , taeb3e_p.zip |
Вычисление собственных значений вещественной симметрической ленточной матрицы, принадлежащих заданному интервалу, и их номеров.
Симметричная ленточная матрица приводится ортогональными преобразованиями Гивенса к трехдиагональной форме, которая используется для вычисления методом бисекций собственных значений, принадлежащих заданному интервалу, и их номеров.
Дж.Х.Уилкинсон, Агебраическая проблема собственных значений, "Наука", М., 1970.
SUBROUTINE AEB3R ( N, NC, MM, M, RLB, RUB, A, EV,
IRAB, RAB, IERR)
Параметры
| N - | порядок исходной ленточной матрицы (тип: целый); |
| NC - | заданное число кодиагоналей исходной матрицы, включая главную диагональ (тип: целый); |
| MM - | оценка сверху числа собственных значений исходной матрицы, принадлежащих заданному интервалу (тип: целый); если фактическое число собственных значений М, принадлежащих заданному интервалу, больше, чем ММ, то собственные значения не вычисляются; |
| M - | целая переменная, в которой запоминается вычисленное число собственных значений, принадлежащих заданному интервалу; |
|
RLB - RUB | заданные нижняя и верхняя границы интервала собственных значений (тип: вещественный); если RLВ > RUВ, то собственные значения не вычисляются; |
| A - | вещественный двумерный массив размера N*NC, в котором задается исходная симметричная ленточная матрица в компактной форме; |
| EV - | вещественный вектор длины ММ, содержащий вычисленные в возрастающем порядке собственные значения; |
| IRAB - | целый вектор длины ММ, содержащий индексы расположенных в возрастающем порядке М вычисленных собственных значений; |
| RAB - | вещественный вектор длины 5*N, используемый как рабочий; |
| IERR - | целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом значение IЕRR полагается равным 3*N+1, если значение ММ меньше истинного числа М собственных значений на интервале. |
Версии
| AEB3D - | вычисление собственных значений вещественной симметрической ленточной матрицы, принадлежащих заданному интервалу, и их номеров с двойной точностью. |
Вызываемые подпрограммы
| UTAE10 - | подпрограмма выдачи диагностических сообщений при работе подпрограмм АЕВ3R, AEB3D. |
Замечания по использованию
| Подпрограммы АЕВ3R, AEB3D не сохраняют исходную ленточную матрицу, но в последних двух столбцах массива А запоминается ее трехдиагональная форма. | |
| В подпрограмме AEB3D параметры A, EV, RAB, RLB, RUB имеют тип DОUВLЕ РRЕСISIОN . |
DОUВLЕ РRЕСISIОN A, EV, RAB, RLB, RUB
DIMENSION A(7, 3), EV(7), IRAB(7), RAB(35)
DO 1 I = 1, 7
A(I, 3) = 10.D0**(7-I)
A(I, 2) = 10.D0
1 A(I, 1) = 1.D0
N = 7
NC = 3
MM = 7
RLB = -6.D0
RUB = 10.D0**7
CALL AEB3D (N, NC, MM, M, RLB, RUB, A, EV,
* IRAB, RAB, IERR)
Результаты:
Собственные значения в интервале (-6.D0, 10.D0**7) :
| -5.67228961584D+00 |
| 1.55306282219D+01 |
| 1.01029236853D+02 |
EV = | 1.00010120030D+03 | , IERR = 0
| 1.00000101020D+04 |
| 1.00000001010D+05 |
| 1.00000000011D+06 |