Текст подпрограммы и версий ( Фортран )
aet1r.zip , aet1d.zip
Тексты тестовых примеров ( Фортран )
taet1r.zip , taet1d.zip
Текст подпрограммы и версий ( Си )
aet1r_c.zip , aet1d_c.zip
Тексты тестовых примеров ( Си )
taet1r_c.zip , taet1d_c.zip
Текст подпрограммы и версий ( Паскаль )
aet1r_p.zip , aet1e_p.zip
Тексты тестовых примеров ( Паскаль )
taet1r_p.zip , taet1e_p.zip

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

Назначение

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

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

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

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

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

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

Параметры

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

Версии

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

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

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

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

  1. 

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

  2.  Подпрограмма АЕТ1R (АЕТ1D) не сохраняет исходный массив Z.

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

       DIMENSION  A(3, 3), WR(3), WI(3), Z(3, 3)
       DATA  A /2., 0., 0., 4., 3., 1., 4., 1., 3./
       N = 3
       CALL  AET1R (3, 3, 1, 3, A, WR, WI, Z, IERR)

Результаты:

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

                | 1   4a    0   |
       Z  =  | 0     a   -a   |
                | 0     a    a   |

   где    a = 0.707106781187