Текст подпрограммы и версий ( Фортран )
aet2r.zip , aet2d.zip
Тексты тестовых примеров ( Фортран )
taet2r.zip , taet2d.zip
Текст подпрограммы и версий ( Си )
aet2r_c.zip , aet2d_c.zip
Тексты тестовых примеров ( Си )
taet2r_c.zip , taet2d_c.zip
Текст подпрограммы и версий ( Паскаль )
aet2r_p.zip , aet2e_p.zip
Тексты тестовых примеров ( Паскаль )
taet2r_p.zip , taet2e_p.zip

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

Назначение

Вычисление всех собственных значений вещественной верхней матрицы Хессенберга QR - алгоpитмом с двойным сдвигом.

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

Подпрограмма АЕТ2R вычисляет собственные значения вещественной верхней матрицы Хессенберга с помощью QR - алгоpитма с двойным сдвигом.

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

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

Предполагается, что матрица была предварительно промасштабирована с помощью подпрограммы АМВ1R.

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

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

    SUBROUTINE  AET2R (NM, N, LOW, IGH, H, WR, WI, IERR) 

Параметры

NM - число строк двумерного массива Н, указанное при описании этого массива в вызывающей подпрограмме (тип: целый);
N - порядок исходной матрицы Хессенберга, N ≤ NМ (тип: целый);
      LOW -
      IGH  
исходные параметры подпрограммы АМВ1R (тип: целый); если исходная матрица не масштабировалась, то можно взять LОW = 1, IGН = N;
H - вещественный двумерный массив размерности NМ на N, содержащий в своих первых N строках исходную матрицу Хессенберга;
WR, WI - вещественные векторы длины N, содержащие собственно действительные и мнимые части вычисленных собственных значений;
IERR - целочисленная переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; IЕRR полагается равным индексу собственного значения, для вычисления которого требуется более 30 итераций, при этом собственные значения с индексами IЕRR + 1, IЕRR + 2, ..., N вычислены правильно; IЕRR = 0, если вычислены все собственные значения.

Версии

AET2D - вычисление всех собственных значений вещественной верхней матрицы Хессенберга, заданной с двойной точностью, QR - алгоpитмом с двойным сдвигом.

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

UTAE12 - подпрограмма выдачи диагностических сообщений при работе подпрограмм АЕТ2R и АЕТ2D.

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

  1. 

В подпрограмме АЕТ2D параметры Н, WR, WI имеют тип DОUВLЕ РRЕСISIОN.

  2.  Подпрограмма АЕТ2R (АЕТ2D) не сохраняет исходную матрицу.

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

       DIMENSION  A(4, 4), WR(4), WI(4)
       DATA  A /4., 3., 0., 0., -2., -3., 2., 0., -2., -6., 6., 1., 2., 6., -2., 3./
       CALL  AET2R (4, 4, 1, 4, A, WR, WI, IERR)

Результаты:

       IERR  =  0
       WR  =  (1., 2., 3., 4.)
       WI  =  (0., 0., 0., 0.)