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

Подпрограмма:  AEB0R

Назначение

Вычисление собственных значений и собственных векторов вещественной симметрической ленточной матрицы с помощью 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