Текст подпрограммы и версий ( Фортран )
afh0r.zip , afh0d.zip , afh0c.zip
Тексты тестовых примеров ( Фортран )
tafh0r.zip , tafh0d.zip , tafh0c.zip
Текст подпрограммы и версий ( Си )
afh0r_c.zip , afh0d_c.zip , afh0c_c.zip
Тексты тестовых примеров ( Си )
tafh0r_c.zip , tafh0d_c.zip , tafh0c_c.zip
Текст подпрограммы и версий ( Паскаль )
afh0r_p.zip , afh0e_p.zip , afh0c_p.zip
Тексты тестовых примеров ( Паскаль )
tafh0r_p.zip , tafh0e_p.zip , tafh0c_p.zip

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

Назначение

Треугольное разложение симметричной матрицы модифицированным методом квадратного корня (модифицированным методом Холецкого).

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

Подпрограмма АFН0R осуществляет разложение симметричной матрицы размера N*N в произведение А = UTDU, где U - верхняя треугольная матрица, на главной диагонали которой стоят единицы, D - диагональная матрица, с помощью модифицированного метода квадратного корня.

Предполагается, что главные миноры матрицы А отличны от нуля.

R.S.Мartin, G.Рeters, J.Н.Wilkinson, Symmetric Decomposition of a Рositive Definite Мatrix, Numer. Матн, 7, 1965.

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

    SUBROUTINE AFH0R (A, S, N) 

Параметры

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

Версии

AFH0D - треугольное разложение симметричной матрицы, заданной с удвоенной точностью, модифицированным методом квадратного корня.
AFH0C - треугольное разложение эрмитовой матрицы А, вида А = U*DU модифицированным методом квадратного корня.

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

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

  1. 

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

  2.  В подпрограмме АFН0С параметр А имеет тип СОМРLЕХ.

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

      DIMENSION  A(5, 5), S(5)
      N = 5.
      DO 1 I = 1, 5
      DO 1 J = I, 5
      A (I, J) = I
  1  A (J, I) = I
      CALL  AFH0R (A, S, N)

Результаты:

          | 1. 1. 1. 1. 1. |                   | 1. |
          | 1. 2. 1. 1. 1. |                   | 1. |
A  =   | 1. 2. 3. 1  1. | ,       S  =   | 1. |  , 
          | 1. 2. 3. 4. 1. |                   | 1. |
          | 1. 2. 3. 4. 5. |                   | 1. |

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

          | 1. 1. 1. 1. 1. |                   | 1. 0  0  0  0  |
          | 0. 1. 1. 1. 1. |                   | 0  1. 0  0  0  |
U  =   | 0. 0. 1. 1. 1. | ,       D  =   | 0  0  1. 0  0  | .
          | 0. 0. 0. 1. 1. |                   | 0  0  0  1. 0  |
          | 0. 0. 0. 0. 1. |                   | 0  0  0  0  1. |