Текст подпрограммы и версий ( Фортран )
aeh4r.zip , aeh4d.zip
Тексты тестовых примеров ( Фортран )
taeh4r.zip , taeh4d.zip
Текст подпрограммы и версий ( Си )
aeh4r_c.zip , aeh4d_c.zip
Тексты тестовых примеров ( Си )
taeh4r_c.zip , taeh4d_c.zip
Текст подпрограммы и версий ( Паскаль )
aeh4r_p.zip , aeh4e_p.zip
Тексты тестовых примеров ( Паскаль )
taeh4r_p.zip , taeh4e_p.zip

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

Назначение

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

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

Подпрограмма АЕН4R реализует алгоритм вычисления собственных значений, принадлежащих заданному интервалу, и их номеров уравнения Аx = λx для вещественной симметрической матрицы  А.

Ортогональными преобразованиями  Р матрица  А приводится к симметрической трехдиагональной матрице А1 = РTАР, что позволяет воспользоваться методом бисекций для вычисления принадлежащих заданному интервалу собственных значений и их номеров задачи А1y = λy. При этом собственные значения этой и исходной задач совпадают.

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

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

    SUBROUTINE  AEH4R (N, A, EV, RLB, RUB, MM, M, IRAB,
                                           RAB, IERR) 

Параметры

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

Версии

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

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

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

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

  Подпрограммы АЕН4R(D) сохраняют полный верхний треугольник исходной матрицы, остальные элементы используются для запоминания ортогональных преобразований.
  Подпрограмма АЕH4R использует служебные подпрограммы AER4R, AER18R.
Подпрограмма АЕH4D использует служебные подпрограммы AER4D, AER18D.

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

       DIMENSION  A(4, 4), EV(3), IRAB(3), RAB(20)
       DATA  A /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./
       N = 4
       MM = 3
       RLB = 0.
       RUB = 1.
       CALL  AEH4R (N, A, EV, RLB, RUB, MM, M, IRAB, RAB, IERR)

Результаты:

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

                  |  0.2422607  |
       EV  =  |  0.6382838  | , 
                  |  0.7967067  |

       IERR  =  0