Текст подпрограммы и версий
adh1r_p.zip   adh1e_p.zip   adh1c_p.zip
Тексты тестовых примеров
tadh1r_p.zip   tadh1e_p.zip   tadh1c_p.zip

Подпрограмма:  ADH1R (модуль ADH1R_p)

Назначение

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

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

Положительно определенная симметричная матрица  А приводится к действительной невырожденной нижней треугольной матрице  L, такой, что LLT = A. Определитель матрицы  А вычисляется как квадрат определителя матрицы  L и записывается в виде:

     det A  =  D1*2D2 ,    где  0.0625 ≤ D1 ≤ 1 . 

В.В.Воеводин, Численные методы алгебры (теория и алгорифмы). Наука, М., 1966.

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

procedure ADH1R(var A :Array of Real; var D1 :Real; var D2 :Integer;
                var N :Integer; var IERR :Integer); 

Параметры

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

Версии

ADH1E - вычисление определителя положительно определенной симметричной матрицы, заданной с расширенной (Extended) точностью в компактной форме, с использованием метода квадратного корня.
ADH1C - вычисление определителя положительно определенной эрмитовой матрицы, заданной в компактной форме, с использованием метода квадратного корня.

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

AFH1R - треугольное разложение положительно определенной симметричной матрицы методом квадратного корня (методом Холецкого) с компактной формой представления симметричной и треугольной матриц.
AFH1E - треугольное разложение положительно определенной симметричной матрицы методом квадратного корня с компактной формой представления симметричной и треугольной матриц с расширенной (Extended) точностью.
AFH1C - треугольное разложение положительно определенной эрмитовой матрицы с компактной формой представления методом квадратного корня.

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

  1. 

В подпрограмме АDН1E массив  А и переменная D1 имеют тип Extended.

  2.  В подпрограмме АDН1С массив  А и переменная  D1 имеют тип Сomplex.

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

Unit TADH1R_p;
interface
uses
SysUtils, Math, { Delphi }
LStruct, Lfunc, UtRes_p, ADH1R_p;

function TADH1R: String; 

implementation

function TADH1R: String;
var
D2,N,IERR :Integer;
D1 :Real;
const
A :Array [0..5] of Real = ( 1.0,2.0,20.0,3.0,26.0,70.0 );
begin
Result := '';
N := 3;
ADH1R(A,D1,D2,N,IERR);
RЕSUlt := Result + Format('%s',['  D1=']);
Result := Result + Format('%20.16f',[D1]) + #$0D#$0A;
Result := Result + Format('%s',['  D2=']);
Result := Result + Format('%3d',[D2]) + #$0D#$0A;
UtRes('TADH1R',Result);  { вывод результатов в файл TADH1R.res }
exit;
end;

end.


Результаты:

       D1 = 0.140625 ,     D2 = 12 ,

  т.е.    det A = 0.140625*212 = 576