Текст подпрограммы и версий ( Фортран )
afh4r.zip , afh4d.zip
Тексты тестовых примеров ( Фортран )
tafh4r.zip , tafh4d.zip
Текст подпрограммы и версий ( Си )
afh4r_c.zip , afh4d_c.zip
Тексты тестовых примеров ( Си )
tafh4r_c.zip , tafh4d_c.zip
Текст подпрограммы и версий ( Паскаль )
afh4r_p.zip , afh4e_p.zip
Тексты тестовых примеров ( Паскаль )
tafh4r_p.zip , tafh4e_p.zip

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

Назначение

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

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

Подпрограмма АFН4R реализует алгоритм приведения симметрической матрицы А ортогональными подобными преобразованиями к симметрической трехдиагональной форме F = QTАQ, где Q - пpоизведение оpтогональных симметpических матpиц отpажения.

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

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

    SUBROUTINE AFH4R (N, A, D, E) 

Параметры

N - порядок исходной матрицы (тип: целый);
A - вещественный двумерный массив размера N*N, содержащий симметрическую матрицу; в результате работы подпрограммы в поддиагональной части массива А в последовательных строках запоминаются векторы, порождающие матрицы отражения Q1, ..., QN - 2;
D - вещественный вектор длины N, содержащий диагональные элементы трехдиагональной матрицы;
E - вещественный вектор длины N, содержащий в последних N - 1 компонентах поддиагональные элементы симметрической трехдиагональной матрицы. Первый элемент Е произволен.

Версии

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

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

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

 

Исходную матрицу А можно задавать лишь нижним треугольником.

Подпрограмма АFН4R сохраняет только полный верхний треугольник массива А, в остальных компонентах этого массива размещается информация об ортогональных преобразованиях.

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

      DIMENSION  A(4, 4), D(4), E(4)
      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
      CALL  AFH4R (N, A, D, E)

Результаты:

                 | 1.00   0.42   0.54   0.66 |
      A  =    | 0.18   1.00   0.32   0.44 |
                 | 0.42   0.58   1.00   0.22 |
                 | 0.66   0.44   1.04   1.00 |

                 | 0.6670 |
      D  =    | 0.6501 |
                 | 1.6829 |
                 | 1.0000 |

                 |  0.0000 |
      E  =     | -0.0879 |
                 | -0.4614 |
                 | -0.8232 |