|
Текст подпрограммы и версий ( Фортран ) aeb0r.zip , aeb0d.zip |
Тексты тестовых примеров ( Фортран ) taeb0r.zip , taeb0d.zip |
|
Текст подпрограммы и версий ( Си ) aeb0r_c.zip , aeb0d_c.zip |
Тексты тестовых примеров ( Си ) taeb0r_c.zip , taeb0d_c.zip |
|
Текст подпрограммы и версий ( Паскаль ) aeb0r_p.zip , aeb0e_p.zip |
Тексты тестовых примеров ( Паскаль ) taeb0r_p.zip , taeb0e_p.zip |
Вычисление собственных значений и собственных векторов вещественной симметрической ленточной матрицы с помощью QL - алгоритма.
Симметричная ленточная матрица приводится ортогональными преобразованиями Гивенса к симметрической трехдиагональной форме, которая используется для вычисления собственных значений и соответствующих собственных векторов исходной матрицы.
Дж.Х.Уилкинсон, Агебраическая проблема собственных значений, "Наука", М., 1970.
SUBROUTINE AEB0R ( N, NC, A, EV, V, RAB, IERR)
Параметры
| N - | порядок исходной матрицы (тип: целый); |
| NC - | заданное число кодиагоналей исходной матрицы, включая главную диагональ (тип: целый); |
| A - | вещественный двумерный массив размера N*NС, в котором задается исходная симметричная ленточная матрица в компактной форме; |
| EV - | вещественный вектор длины N, содержащий вычисленные в возрастающем порядке собственные значения; |
| V - | вещественный двумерный массив размерности N на N, содержащий вычисленные ортонормированные собственные векторы исходной матрицы; |
| RAB - | вещественный вектор длины N, используемый как рабочий; |
| IERR - | целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом значение IЕRR полагается равным номеру собственного значения, для вычисления которого потребовалось более 30 итераций; в этом случае будут вычислены правильно, но не упорядочены, собственные значения с индексами 1, 2, ..., IЕRR - 1 и соответствующие собственные векторы. |
Версии
| AEB0D - | вычисление собственных значений и собственных векторов вещественной симметрической ленточной матрицы с помощью QL - алгоритма с двойной точностью. |
Вызываемые подпрограммы
| UTAE10 - | подпрограмма выдачи диагностических сообщений при работе подпрограмм АЕВ0R, AEB0D. |
Замечания по использованию
|
Подпрограммы АЕВ0R, AEB0D не сохраняют исходную ленточную матрицу, но в последних двух столбцах массива А запоминается ее трехдиагональная форма. | |
| В подпрограмме AEB0D параметры A, V, EV, RAB имеют тип DОUВLЕ РRЕСISIОN . |
DОUВLЕ РRЕСISIОN A, V, EV, RAB
DIMENSION A(7, 3), V(7, 7), EV(7), RAB(7)
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 AEB0D (N, NC, A, EV, V, RAB, IERR)
Результаты:
Собственные значения:
| -5.6722919995D+00 |
| 1.5530623348D+01 |
| 1.0102923192D+02 |
EV = | 1.0001011975D+03 |
| 1.0000010098D+04 |
| 1.0000000100D+05 |
| 1.0000000001D+06 |
Собственные векторы:
| 4.60241432D-12 | | -1.01658674D-11 |
| -6.19409164D-10 | | -3.23048617D-09 |
| -4.59624634D-6 | | 1.01980144D-05 |
V1 = | 1.07906847D-4 | , V2 = | 2.21018403D-04 | ,
| 4.49094723D-2 | | -1.04031614D-01 |
| -5.57567694D-1 | | 8.22631335D-01 |
| 8.28915795D-1 | | 5.58976743D-01 |
| 8.78765679D-11 | | 1.21337184D-09 |
| 1.20773046D-07 | | -9.98803192D-06 |
| -8.90754203D-05 | | -1.11227803D-03 |
V3 = | -1.11743497D-02 | , V4 = | 9.99936917D-01 | ,
| 9.93497270D-01 | | 1.11204209D-02 |
| 1.11331459D-01 | | 1.12247594D-03 |
| 2.10619612D-02 | | 2.23652822D-05 |
| -1.00897793D-06 | | -1.11112345D-05 |
| -1.11123288D-04 | | 9.99999994D-01 |
| 9.99999371D-01 | | 1.11112108D-04 |
V5 = | 1.11121032D-03 | , V6 = | 1.01122336D-05 | ,
| 1.02132585D-04 | | 2.12447903D-09 |
| 2.13477306D-07 | | 1.01344920D-10 |
| 1.04277680D-08 | | 3.13795946D-14 |
| 1.00000000D+00 |
| 1.11111223D-05 |
| 1.01021324D-06 |
V7 = | 2.12344994D-11 | ,
| 1.01052664D-12 |
| 3.13400892D-17 |
| 1.01084105D-18 |
IERR = 0