|
Текст подпрограммы и версий ( Фортран ) aeb1r.zip , aeb1d.zip |
Тексты тестовых примеров ( Фортран ) taeb1r.zip , taeb1d.zip |
|
Текст подпрограммы и версий ( Си ) aeb1r_c.zip , aeb1d_c.zip |
Тексты тестовых примеров ( Си ) taeb1r_c.zip , taeb1d_c.zip |
|
Текст подпрограммы и версий ( Паскаль ) aeb1r_p.zip , aeb1e_p.zip |
Тексты тестовых примеров ( Паскаль ) taeb1r_p.zip , taeb1e_p.zip |
Вычисление собственных значений вещественной симметрической ленточной матрицы с помощью Q*L - алгоритма.
Симметричная ленточная матрица приводится ортогональными преобразованиями Гивенса к симметрической трехдиагональной форме, которая используется для вычисления собственных значений исходной матрицы Q*L - алгоритмом.
Дж.Х.Уилкинсон, Агебраическая проблема собственных значений, "Наука", М., 1970.
SUBROUTINE AEB1R ( N, NC, A, EV, RAB, IERR)
Параметры
| N - | порядок исходной матрицы (тип: целый); |
| NC - | заданное число кодиагоналей исходной матрицы, включая главную диагональ (тип: целый); |
| A - | вещественный двумерный массив размера N*NС, в котором задается исходная симметричная ленточная матрица в компактной форме; |
| EV - | вещественный вектор длины N, содержащий вычисленные в возрастающем порядке собственные значения; |
| RAB - | вещественный вектор длины 2 на N, используемый как рабочий; |
| IERR - | целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом значение IЕRR полагается равным номеру собственного значения, для вычисления которого потребовалось более 30 итераций; в этом случае собственные значения с индексами 1, 2, ..., IЕRR - 1 вычислены правильно и расположены в возрастающем порядке, но они не обязательно являются самыми меньшими из всех N собственных значений. |
Версии
| AEB1D - | вычисление собственных значений вещественной симметрической ленточной матрицы с помощью QL - алгоритма с двойной точностью. |
Вызываемые подпрограммы
| UTAE10 - | подпрограмма выдачи диагностических сообщений при работе подпрограмм АЕВ1R, AEB1D. |
Замечания по использованию
| Подпрограммы АЕВ1R, AEB1D не сохраняют исходную ленточную матрицу, но в последних двух столбцах массива А запоминается ее трехдиагональная форма. | |
| В подпрограмме AEB1D параметры A, EV, RAB имеют тип DОUВLЕ РRЕСISIОN . |
DОUВLЕ РRЕСISIОN A, EV, RAB
DIMENSION A(7, 3), EV(7), RAB(14)
DO 1 I = 1, 7
A(I, 3) = 10.D0**(7-I)
A(I, 2) = 10.D0
1 A(I, 1) = 1.D0
NC = 3
N = 7
CALL AEB1D (N, NC, A, EV, RAB, IERR)
Результаты:
Собственные значения:
| -5.67229125355D+00 |
| 1.55306255671D+01 |
| 1.01029233155D+02 |
EV = | 1.00010119681D+03 |
| 1.00000101005D+04 |
| 1.00000001008D+05 |
| 1.00000000011D+06 |
IERR = 0