Текст подпрограммы и версий ( Фортран )
afh3r.zip , afh3d.zip , afh3c.zip , afs3c.zip
Тексты тестовых примеров ( Фортран )
tafh3r.zip , tafh3d.zip , tafh3c.zip , tafs3c.zip
Текст подпрограммы и версий ( Си )
afh3r_c.zip , afh3d_c.zip , afh3c_c.zip , afs3c_c.zip
Тексты тестовых примеров ( Си )
tafh3r_c.zip , tafh3d_c.zip , tafh3c_c.zip , tafs3c_c.zip
Текст подпрограммы и версий ( Паскаль )
afh3r_p.zip , afh3e_p.zip , afh3c_p.zip , afs3c_p.zip
Тексты тестовых примеров ( Паскаль )
tafh3r_p.zip , tafh3e_p.zip , tafh3c_p.zip , tafs3c_p.zip

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

Назначение

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

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

Подпрограмма АFН3R реализует разложение неособенной симметричной матрицы А, записанной в компактной форме, в произведение А = L*D*LТ, где L - нижняя треугольная матрица с единичными диагональными элементами, LТ - транспортированная к ней, а D - блочно - диагональная матрица с блоками порядка 1 или 2.

Вunch J.R., Рarlett В.N., Direct methods for solving symmetric indefinite systems of linear equations, SIАМ J. Numer. Аnal., Vol.8, No.4, December 1971.

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

    SUBROUTINE  AFH3R (A, N, IR, R, IERR) 

Параметры

A - вещественный вектор длины N * (N + 1) / 2, который содержит исходную матрицу, записанную в компактной форме; в процессе работы в массиве А накапливаются элементы матриц L и D (см. замечания по использованию);
N - порядок заданной матрицы А (тип: целый);
IR - целый вектор длины 2N, в первых N компонентах которого запоминаются перестановки диагональных элементов, в последних - порядки блоков матрицы D;
R - вещественный вектор длины N, используемый как рабочий;
IERR - целая переменная, служащая для сообщения об ошибках, обнаруженных в процессе работы подпрограммы; при этом:
IЕRR=65 - если матрица является сингулярной.

Версии

AFH3D - разложение неособенной симметричной матрицы с компактной формой представления методом квадратного корня с повышенной точностью.
AFH3C - разложение неособенной эрмитовой матрицы с компактной формой представления методом квадратного корня;
AFS3C - разложение неособенной симметричной комплексной матрицы с компактной формой представления методом квадратного корня.

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

UTAF10 - подпрограмма выдачи диагностических сообщений при работе подпрограмм АFН3R, AFH3C, AFS3C .
UTAF11 - подпрограмма выдачи диагностических сообщений при работе подпрограмм АFН3D, AFH3P.

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

  1. 

Значения выходных матриц L и D помещаются в матрице А, причем

ai i = di i  ;

ai+1 i = di+1 i  ,  если  di+1 i ≠ 0  (в этом случае li+1 i = 0)

ai+1 i = li+1 i  ,  если  di+1 i = 0

  2. 

Для подпрограммы АFН3D параметры А, R должны иметь тип DОUВLЕ РRЕСISIОN.

  3.  Для подпрограмм АFН3С, АFS3С параметр А имеет тип СОМРLЕХ.

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

      DIMENSION  A(6), IR(6), R(3)
      DATA  A /1., .5, -1., 3., 2., 1./
      N = 3
      CALL  AFH3R (A, N, IR, R, IERR)

Результаты:

      A  =   (1., 3., 1., 0.69, -0.06, -1.22) , 
      IR(4)  =  2 ,  IR(5)  =  0 ,  IR(6)  =  1 ,  
      IERR  =  0