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

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

Назначение

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