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

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

Назначение

Вычисление собственных значений вещественной симметрической ленточной матрицы, принадлежащих заданному интервалу, и их номеров.

Математическое описание

Симметричная ленточная матрица приводится ортогональными преобразованиями Гивенса к трехдиагональной форме, которая используется для вычисления методом бисекций собственных значений, принадлежащих заданному интервалу, и их номеров.

Дж.Х.Уилкинсон, Агебраическая проблема собственных значений, "Наука", М., 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 |