Текст подпрограммы и версий ( Фортран )
aeh4c.zip , aeh4p.zip
Тексты тестовых примеров ( Фортран )
taeh4c.zip , taeh4p.zip
Текст подпрограммы и версий ( Си )
aeh4c_c.zip , aeh4p_c.zip
Тексты тестовых примеров ( Си )
taeh4c_c.zip , taeh4p_c.zip
Текст подпрограммы и версий ( Паскаль )
aeh4c_p.zip , aeh4z_p.zip
Тексты тестовых примеров ( Паскаль )
taeh4c_p.zip , taeh4z_p.zip

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

Назначение

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

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

Комплексная эрмитова матрица  А последовательностью унитарных подобных преобразований приводится к симметричной трехдиагональной форме F = V*Q*AQV (где  Q - произведение унитарных матриц,  V - диагональная унитарная матрица), которая используется для вычисления принадлежащих заданному интервалу собственных значений и их номеров методом бисекций.

Уилкинсон, Pайнш. "Справочник алгоритмов на языке АЛГОЛ. Линейная алгебра", М., "Машиностроение", 1976.

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

    SUBROUTINE  AEH4C (N, AR, AI, EV, RLB, RUB, MM, M, 
                                              IRAB, RAB1, RAB2, IERR) 

Параметры

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

Версии

AEH4P - вычисление принадлежащих заданному интервалу собственных значений и их номеров комплексной эрмитовой матрицы, заданной с удвоенной точностью. Массивы АR, АI, ЕV, RАВ1, RАВ2 и переменные RLВ, RUВ имеют тип DОUВLЕ РRЕСISIОN.

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

UTAE10 - подпрограмма выдачи диагностических сообщений при работе подпрограмм AEH4C и AEH4P.

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

  Подпрограммы AEH4C(P) сохраняют полный верхний треугольник массива АR и строгий верхний треугольник массива АI, в остальных элементах массивов АR и АI помещается информация о преобразованиях  Q. Матрица преобразования  V запоминается в массиве RАВ1.
  Подпрограмма АЕH4C использует служебные подпрограммы AER4R, AER7R.
Подпрограмма АЕH4P использует служебные подпрограммы AA01P, AER4D, AER7D.

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

       DIMENSION  AR(4, 4), AI(4, 4), EV(3), RAB1(2, 4), RAB2(20), 
      *                      IRAB(3)
       DATA  AR /1., 0.42, 0.54, 0.66, 0.42, 1., 0.32, 0.44, 0.54, 0.32, 
      *                  1., 0.22, 0.66, 0.44, 0.22, 1./
       DATA  AI /16*0./
       N = 4
       MM = 3
       RLB = 0.
       RUB = 1.
       CALL  AEH4C (N, AR, AI, EV, RLB, RUB, MM, M, IRAB, RAB1, 
      *                          RAB2, IERR)

Результаты:

Собственные значения, вычисленные в интервале (0., 1.)

       EV  =  (0.24226070826,  0.63828380281,  0.79670668886) , 

       IERR  =  0