|
Текст подпрограммы и версий adh1r_p.zip adh1e_p.zip adh1c_p.zip |
Тексты тестовых примеров tadh1r_p.zip tadh1e_p.zip tadh1c_p.zip |
Вычисление определителя положительно определенной симметричной матрицы, заданной в компактной форме, с использованием метода квадратного корня (метода Холецкого).
Положительно определенная симметричная матрица А приводится к действительной невырожденной нижней треугольной матрице 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