Текст подпрограммы и версий ( Фортран )
afh5r.zip , afh5d.zip
Тексты тестовых примеров ( Фортран )
tafh5r.zip , tafh5d.zip
Текст подпрограммы и версий ( Си )
afh5r_c.zip , afh5d_c.zip
Тексты тестовых примеров ( Си )
tafh5r_c.zip , tafh5d_c.zip
Текст подпрограммы и версий ( Паскаль )
afh5r_p.zip , afh5e_p.zip
Тексты тестовых примеров ( Паскаль )
tafh5r_p.zip , tafh5e_p.zip

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

Назначение

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

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

Подпрограмма АFН5R осуществляет приведение вещественной матрицы А порядка N к симметричной трехдиагональной матрице Т с помощью следующей последовательности ортогональных преобразований подобия

            Ai = Pi*Ai-1*Pi ,     i = 1, 2, ..., N-2 ,
 где
           А0 = А ,
           Рi =  I - uiuiT / hi ,      hi = uiTui / 2 , 

а векторы ui  ЕN выбираются таким образом, чтобы последние  i строк и столбцов матрицы Аi имели бы трехдиагональную структуру. При этом у векторов ui отличными от нуля являются только компоненты с номерами 1, 2, ..., N - 1 . I - единичная матрица порядка N .

Информация о выполненых преобразованиях, а именно векторы ui, порождающие матрицы отражения Рi, запоминается и впоследствии может быть использована для восстановления собственных векторов исходной матрицы.

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

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

    SUBROUTINE  AFH5R (N, NV, A, D, E, E2) 

Параметры

N - порядок исходной матрицы (тип: целый);
NV - длина вектора А, указанная при описании этого вектора в вызывающей подпрограмме, причем NV ≥ N (N + 1) / 2 (тип: целый);
A - вещественный вектор длины NV, в первых N (N + 1) / 2 компонентах которого задается исходная симметричная матрица в компактной форме; в результате работы подпрограммы вектор А содержит информацию о векторах ui, i = 1, 2, ..., N - 2, при этом на месте внедиагональных элементов (N - i + 1) - й строки исходной матрицы запоминаются ненулевые элементы вектора ui, а на месте диагонального элемента (N - i + 1) - й строки - величина √ h i  (см. математическое описание);
D - вещественный вектор длины N, содержащий на выходе из подпрограммы диагональные элементы трехдиагональной матрицы;
E - вещественный вектор длины N, содержащий на выходе из подпрограммы в последних N - 1 компонентах поддиагональные элементы трехдиагональной матрицы, Е (1) = 0;
E2 - вещественный вектор длины N на выходе из подпрограммы Е2 (I) = (Е (I))2 ,  I = 1, 2, ..., N.

Версии

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

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

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

  1. 

Фактические параметры, соответствующие формальным параметрам Е и Е2 могут совпадать, при этом будут получены только сами поддиагональные элементы без их квадратов.

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

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

      DIMENSION A (10), D (4), E (4), E2 (4)
      DATA A /1., 0., 2., -1., 0., 1., 4., 2*0., 2./
      CALL  AFH5R (4, 10, A, D, E, E2)

Результаты:

      A   =  (0., 0., 0., -1., 1., 1., 4., 0., 4., 4.)T
      D   =  (2., 1., 1., 2.)T
      E   =  (0., 0., -1., -4.)T
      E2  =  (0., 0., 1., 16.)T

Это означает, что

              |  2     0     0     0    |
              |  0     1    -1     0    |
      T  =  |  0    -1     1    -4   |
              |  0     0    -4     2    |

      Pi = I - uiuiT / hi ,   i  =  1, 2 , 
 где
      u1  =  (4., 0., 4., 0.)T ,      √ h 1   =  4

      u2  =  (-1., 1., 0., 0.)T ,     √ h 2   =  1