IMath.CholeskyDecomposition

Синтаксис Fore

CholeskyDecomposition(Data: Array): Array;

Синтаксис Fore.NET

CholeskyDecomposition(Data: System.Array): System.Array;

Параметры

Data. Числовой двумерный массив с равным количеством строк и столбцов.

Описание

Метод CholeskyDecomposition возвращает результат разложения Холецкого.

Комментарии

Разложение осуществляется только для симметричных положительно-определенных матриц.

Пример Fore

Для выполнения примера добавьте ссылку на системную сборку MathFin.

Sub UserProc;
Var
    ChD, matr: Array 
Of Double;
    i, j: Integer;
Begin
    matr := 
New Double[33];
    matr[
00] := 1; matr[01] := 0; matr[02] := 0;
    matr[
10] := 0; matr[11] := 15; matr[12] := 0;
    matr[
20] := 0; matr[21] := 0; matr[22] := 150;
    ChD := Math.CholeskyDecomposition(matr);
    
If Math.Status = 0 Then
        
For i := 0 To ChD.GetUpperBound(1Do
            
For j := 0 To ChD.GetUpperBound(2Do
                Debug.Write(ChD[i, j].ToString + 
" ");
            
End For;
            Debug.WriteLine(
"");
        
End For;
        
Else
        Debug.WriteLine(
"Ошибка " + Math.Status.ToString + ": " + Math.ErrorMsg);
    
End If;
End Sub UserProc;

В результате выполнения примера в окно консоли будет выведен результат разложения Холецкого.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.MathFin;

Public Shared Sub Main(Params: StartParams);
Var
    ChD, matr: System.Array;
    i, j: Integer;
    Math: MathClass = New MathClass();
Begin
    matr := New Double[33];
    matr[00] := 1; matr[01] := 0; matr[02] := 0;
    matr[10] := 0; matr[11] := 15; matr[12] := 0;
    matr[20] := 0; matr[21] := 0; matr[22] := 150;
    ChD := Math.CholeskyDecomposition(matr);
    If Math.Status = 0 Then
        For i := 0 To ChD.GetUpperBound(0Do
            For j := 0 To ChD.GetUpperBound(1Do
                System.Diagnostics.Debug.Write(ChD[i, j].ToString() + " ");
            End For;
            System.Diagnostics.Debug.WriteLine("");
        End For;
        Else
        System.Diagnostics.Debug.WriteLine("Ошибка " + Math.Status.ToString() + ": " + Math.ErrorMsg);
    End If;
End Sub;

См. также:

IMath