ISmMultiNormalDistribution.K

Синтаксис Fore

K: Integer;

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

K: integer;

Описание

Свойство K определяет размерность распределения.

Комментарии

Значение должно соответствовать условию: K ≥ 1.

Пример Fore

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

Sub UserProc;
Var
    Distrib: ISmMultiNormalDistribution;
    Mu, Sigma, MultiRandom, MultiRandomVector: Array Of Double;
    i, j: Integer;
    d: Integer = 2;
    Cnt: Integer = 10;
Begin
    Distrib := New SmMultiNormalDistribution.Create;
    Distrib.K := d;
    Mu := New Double[d];
    Mu[0] := -1; Mu[1] := 0;
    Distrib.Mu := Mu;
    Sigma := New Double[d, d];
    Sigma[00] := 2; Sigma[01] := 0;
    Sigma[10] := 0; Sigma[11] := 1;
    Distrib.Sigma := Sigma;
    MultiRandom := Distrib.MultiRandom;
    Debug.WriteLine("-- Сгенерированный вектор --");
    For i := 0 To d - 1 Do
        Debug.Write(MultiRandom[i]);
        Debug.Write(";  ");
    End For;
    Debug.WriteLine("");
    Debug.WriteLine("-- Сгенерированная матрица --");
    MultiRandomVector := Distrib.MultiRandomVector(Cnt);
    For i := 0 To Cnt - 1 Do
        For j := 0 To d - 1 Do
            Debug.Write(MultiRandomVector[i, j]);
            Debug.Write(";  ");
        End For;
        Debug.WriteLine("");
    End For;
End Sub UserProc;

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

Пример Fore.NET

Imports Prognoz.Platform.Interop.Stat;

Public Shared Sub Main(Params: StartParams);
Var
    Distrib: ISmMultiNormalDistribution;
    Mu, Sigma, MultiRandom, MultiRandomVector: System.Array;
    i, j: Integer;
    d: Integer = 2;
    Cnt: Integer = 10;
Begin
    Distrib := New SmMultiNormalDistribution.Create();
    Distrib.K := d;
    Mu := New Double[d];
    Mu[0] := -1; Mu[1] := 0;
    Distrib.Mu := Mu;
    Sigma := New Double[d, d];
    Sigma[00] := 2; Sigma[01] := 0;
    Sigma[10] := 0; Sigma[11] := 1;
    Distrib.Sigma := Sigma;
    MultiRandom := Distrib.MultiRandom();
    System.Diagnostics.Debug.WriteLine("-- Сгенерированный вектор --");
    For i := 0 To d - 1 Do
        System.Diagnostics.Debug.Write(MultiRandom[i]);
        System.Diagnostics.Debug.Write(";  ");
    End For;
    System.Diagnostics.Debug.WriteLine("");
    System.Diagnostics.Debug.WriteLine("-- Сгенерированная матрица --");
    MultiRandomVector := Distrib.MultiRandomVector(Cnt);
    For i := 0 To Cnt - 1 Do
        For j := 0 To d - 1 Do
            System.Diagnostics.Debug.Write(MultiRandomVector[j, i]);
            System.Diagnostics.Debug.Write(";  ");
        End For;
        System.Diagnostics.Debug.WriteLine("");
    End For;
End Sub;

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

См. также:

ISmMultiNormalDistribution