Текст подпрограммы и версий ( Фортран )
aet3c.zip , aet3p.zip
Тексты тестовых примеров ( Фортран )
taet3c.zip , taet3p.zip
Текст подпрограммы и версий ( Си )
aet3c_c.zip , aet3p_c.zip
Тексты тестовых примеров ( Си )
taet3c_c.zip , taet3p_c.zip
Текст подпрограммы и версий ( Паскаль )
aet3c_p.zip , aet3z_p.zip
Тексты тестовых примеров ( Паскаль )
taet3c_p.zip , taet3z_p.zip

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

Назначение

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

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

Подпрограмма AET3C по заданным собственным значениям верхней комплексной матрицы Хессенберга A вычисляет соответствующие собственные векторы с помощью метода обратных итераций.

Возникающие в методе обратных итераций системы

     ( A - λ I ) x  =  y , 

где λ - задаваемое приближение к собственному значению матрицы A, решаются методом Гаусса с выбором ведущего элемента по столбцу.

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

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

    SUBROUTINE  AET3C (NM, N, AR, AI, WR, WI, SELECT, MM, M,
                                             ZR, ZI, RM1, RM2, RV1, RV2, IERR) 

Параметры

NM - число стpок двумерных массивов AR, AI, ZR и ZI, указанное при описании этих массивов в вызывающей подпрограмме (тип: целый);
N - порядок исходной матрицы, N ≤ NM (тип: целый);
AR, AI - вещественные двумерные массивы размерности NM на N, содержащие в своих первых N стpоках соответственно вещественную и мнимые части исходной матрицы Хессенберга;
WR, WI - вещественные векторы длины N, содержащие на входе в подпрограмму соответственно вещественные и мнимые части собственных значений исходной матрицы Хессенберга; если исходная матрица является правой квазитреугольной, то требуется, чтобы собственные значения каждой диагональной клетки исходной матрицы имели бы в массивах WR и WI индексы, заключенные между граничными индексами соответствующей диагональной клетки; этому условию удовлетворяют собственные значения, вычисленные подпрограммой AET2R;
SELECT - логический вектоp длины N, служащий для выделения тех собственных значений, для которых нужно вычислить собственные векторы, при этом, если требуется вычислить собственный вектоp, соответствующий собственному значению, имеющему индекс I в массивах WR и WI, то SELECT (I) = .TRUE.;
MM - задаваемая оценка свеpху для числа столбцов, требующихся для хранения вычисляемых собственных вектоpов (тип: целый);
M - целая переменная равная на выходе из подпрограммы числу столбцов, действительно использованных для хранения вычисленных собственных вектоpов;
ZR, ZI - вещественные двумерные массивы размерности NM на MM, содержащие на выходе из подпрограммы в своих первых M столбцах соответственно вещественные и мнимые части вычисленных собственных вектоpов;
          RM1 -
          RM2  
вещественные рабочие векторы длины N2;
            RV1 -
            RV2  
вещественные рабочие векторы длины N;
IERR - целочисленная переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом:
IERR = - (2*N + 1) - если для хранения искомых собственных вектоpов требуется более MM столбцов, в этом случае на выходе из подпрограммы M = MM;
IERR = - K - если для собственного значения с индексом K не было получено приемлемого приближения к собственному вектоpу; в этом случае компоненты этого вектоpа приравниваются нулю; если таких собственных вектоpов несколько, то в качестве K берется индекс последнего из них;
IERR = - (N + K) - если обе описанные выше ошибки имели место;
IERR= 0 - в случае нормального выхода из подпрограммы.

Версии

AET3P - вычисление собственных вектоpов верхней комплексной матрицы Хессенберга, заданной с двойной точностью, по заданным собственным значениям.

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

UTAE12 - подпрограмма выдачи диагностических сообщений при работе подпрограмм AET3C и AET3P.

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

  1. 

Подпрограмма AET3C сохраняет исходную матрицу (массив A) и заданные собственные значения (массивы WR и WI), если не считать незначительные возмущения вещественных частей некоторых близких собственных значений (массив WR), произведенные с целью получения независимых собственных вектоpов.

  2.  B подпрограмме AET3P параметры AR, AI, WR, WI, ZR, ZI, RM1, RM2, RV1, RV2 имеют тип DOUBLE PRECISION.

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

       LOGICAL  SELECT
       DIMENSION  AR(3, 3), AI(3, 3), WR(3), WI(3), SELEST(3), ZR(3, 2), 
      *                       ZI(3, 2), RM1(3, 3), RM2(3, 3), RV1(3), RV2(3)
       DATA  AR /2., 0., 0., -2., 0., -1., 4., 2., 3./
       DATA  AI /2., 2*0., -2., 1., 0., 4., 0., 1./
       DATA  WR /2., 1., 2./
       DATA  WI /2., 1., 1./
       N = 3
       MM = 3
       SELEST(1) = .TRUE.
       SELEST(2) = .FALSE.
       SELEST(3) = .TRUE.
       CALL  AET3C (3, 3, AR, AI, WR, WI, SELEST, MM, M, ZR, ZI,
      *                         RM1, RM2, RV1, RV2, IERR)

Результаты:

      M  =  2 ,    IERR  =  0 ,

                  | 1.    1.     |
       ZR  =  | 0.   -0.25 |
                  | 0.   -0.25 |

                 | 0.    0.     |
       ZI  =  | 0.   -0.25 |
                 | 0.   -0.25 |