Текст подпрограммы и версий ( Фортран )
aeb2r.zip , aeb2d.zip
Тексты тестовых примеров ( Фортран )
taeb2r.zip , taeb2d.zip
Текст подпрограммы и версий ( Си )
aeb2r_c.zip , aeb2d_c.zip
Тексты тестовых примеров ( Си )
taeb2r_c.zip , taeb2d_c.zip
Текст подпрограммы и версий ( Паскаль )
aeb2r_p.zip , aeb2e_p.zip
Тексты тестовых примеров ( Паскаль )
taeb2r_p.zip , taeb2e_p.zip

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

Назначение

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

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

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

Дж.Х.Уилкинсон, Агебраическая проблема собственных значений, "Наука", М., 1970.

Использование

    SUBROUTINE  AEB2R ( N, NC, MM, M, RLB, RUB, A, EV, V,
                                             IRAB, RAB1, RAB2, IERR) 

Параметры

N - порядок исходной матрицы (тип: целый);
NC - заданное число кодиагоналей исходной матрицы, включая главную диагональ (тип: целый);
MM - оценка сверху числа собственных значений исходной матрицы, принадлежащих заданному интервалу (тип: целый); если фактическое число собственных значений М, принадлежащих заданному интервалу, больше, чем ММ, то собственные значения не вычисляются;
M - целая переменная, в которой запоминается вычисленное число собственных значений, принадлежащих заданному интервалу;
         RLB -
         RUB  
заданные нижняя и верхняя границы интервала собственных значений (тип: вещественный); если RLВ > RUВ, то собственные значения не вычисляются;
A - вещественный двумерный массив размера N*NC, в котором задается исходная симметричная ленточная матрица в компактной форме;
EV - вещественный вектор длины ММ, содержащий вычисленные в возрастающем порядке собственные значения;
V - вещественный двумерный массив размерности N на ММ, содержащий в своих первых М столбцах вычисленные ортонормированные собственные векторы;
IRAB - целый вектор длины ММ, содержащий индексы расположенных в возрастающем порядке М вычисленных собственных значений;
RAB1 - вещественный двумерный массив размерности N*NC, используемый как рабочий;
RAB2 - вещественный вектор длины N * (2*NС+4), используемый как рабочий;
IERR - целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом значение IЕRR
  - равно 3*N+1, если значение ММ меньше истинного числа собственных значений М на интервале;
  - равно - К, если для вычисления собственного вектора с индексом К не нашлось ни одного начального вектора, обеспечивающего приемлемое приближение; при этом компоненты этого собственного вектора полагаются равными нулю. Если таких собственных векторов несколько, то значение IЕRR равно индексу последнего из них.

Версии

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

Вызываемые подпрограммы

UTAE10 - подпрограмма выдачи диагностических сообщений при работе подпрограмм АЕВ2R, AEB2D.

Замечания по использованию

 

Подпрограммы АЕВ2R, AEB2D не сохраняют исходную ленточную матрицу, но в последних двух столбцах массива А запоминается ее трехдиагональная форма.

  В подпрограмме AEB2D параметры A, EV, V, RAB1, RAB2, RLB, RUB имеют тип DОUВLЕ РRЕСISIОN .

Пример использования

       DОUВLЕ РRЕСISIОN  A, EV, V, RAB1, RAB2, RLB, RUB
       DIMENSION  A(7, 3), EV(7), V(7, 7), IRAB(7), RAB1(7, 3), RAB2(70)
       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  AEB2D (N, NC, MM, M, RLB, RUB, A, EV, V,
      *                          IRAB, RAB1, RAB2, IERR)
  
Результаты:

Собственные значения в интервале (-6.D0, 10.D0**7)

                | -5.67228961584D+00 |
                |  1.55306282219D+01 |
                |  1.01029236853D+02 |
     EV  =  |  1.00010120030D+03 |
                |  1.00000101020D+04 |
                |  1.00000001010D+05 |
                |  1.00000000011D+06 |

Собственные векторы, соответствующие вычисленным в интервале ( - 6.D0, 10.D0**7) собственным значениям:

                | -0.4602311D-11 |                    |  1.0165937D-11 |
                |  6.1941045D-10 |                    |  3.2304868D-09 |
                |  4.5962454D-06 |                    | -1.0198015D-05 |
      V1  =  | -1.0790686D-04 |  ,      V2  =  | -2.2101839D-04 |  ,
                | -4.4909463D-02 |                    |  1.0403192D-01 |
                |  5.5756761D-01 |                    | -8.2263142D-01 |
                | -8.2891585D-01 |                    | -5.5897666D-01 |

                | -8.7876556D-11 |                    |  1.2133718D-09 |
                | -1.2077304D-07 |                    | -9.9880319D-06 |
                |  8.9075420D-05 |                    | -1.1122780D-03 |
      V3  =  |  1.1174350D-02 |  ,      V4  =  |  9.9993692D-01 |  ,
                | -9.9349727D-01 |                    |  1.1120421D-02 |
                | -1.1133146D-01 |                    |  1.1224759D-03 |
                | -2.1061961D-02 |                    |  2.2365282D-05 |

                | -1.0089779D-06 |                    |  1.1111235D-05 |
                | -1.1112329D-04 |                    | -9.9999999D-01 |
                |  9.9999937D-01 |                    | -1.1111211D-04 |
      V5  =  |  1.1112103D-03 |  ,      V6  =  | -1.0112234D-05 | ,
                |  1.0213258D-04 |                    | -2.1244794D-09 |
                |  2.1347731D-07 |                    | -0.1013453D-11 |
                |  1.0427767D-08 |                    | -3.1713216D-12 |
 
                |  1.0000000D+00 |
                |  1.1111122D-05 |      
                |  1.0102132D-06 |
      V7  =  |  2.1234289D-11 |  ,
                |  0.1010306D-11 |
                | -2.1027951D-16 |
                | -3.1713216D-14 |

      IERR  =  0