ModelPeriod: IStatPeriod;
ModelPeriod: Prognoz.Platform.Interop.Stat.IStatPeriod;
Свойство ModelPeriod определяет параметры периода идентификации.
Для определения параметров исходного ряда используйте свойство ISmSlideSmoothing.Serie.
Для выполнения примера добавьте ссылку на системную сборку «Stat».
Sub UserProc;
Var
Slide: SmSlideSmoothing;
s, ar: Array Of Double;
d: Double;
res, i: Integer;
Begin
Slide := New SmSlideSmoothing.Create;
s := New Double[10];
s[0] := 670.2;
s[1] := 576.06;
s[2] := 717.6;
s[3] := 856.9;
s[4] := 885.4;
s[5] := 1011.8;
s[6] := 995.44;
s[7] := 1064.74;
s[8] := 1033.3;
s[9] := 780.8584552;
Slide.Serie.Value := s;
Slide.ModelPeriod.FirstPoint := 1;
Slide.ModelPeriod.LastPoint := 10;
Slide.Width := 3;
Slide.CenterMovingAverage := True;
res := Slide.Execute;
If res <> 0 Then
Debug.WriteLine(Slide.Errors);
Else
Debug.WriteLine("== Сглаженный ряд ==");
ar := Slide.Fitted;
For i := 0 To Slide.ModelPeriod.LastPoint - 1 Do
d := ar[i];
Debug.WriteLine(i.ToString + ". " + d.ToString);
End For;
End If;
End Sub UserProc;
После выполнения примера в окно консоли будет выведен сглаженный ряд:
== Сглаженный ряд ==
0, 1.#QNAN
1, 654.62
2, 716.85333333333335
3, 819.9666666666667
4, 918.0333333333333
5, 964.21333333333325
6, 1023.9933333333333
7, 1031.1600000000001
8, 959.63281840000002
9, 1.#QNAN
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Stat;
…
Public Shared Sub Main(Params: StartParams);
Var
Slide: SmSlideSmoothing;
s: Array[10] Of Double;
ar: System.Array;
d: Double;
res, i: Integer;
Begin
Slide := New SmSlideSmoothing.Create();
//s := New Double[10];
s[0] := 670.2;
s[1] := 576.06;
s[2] := 717.6;
s[3] := 856.9;
s[4] := 885.4;
s[5] := 1011.8;
s[6] := 995.44;
s[7] := 1064.74;
s[8] := 1033.3;
s[9] := 780.8584552;
Slide.Serie.Value := s;
Slide.ModelPeriod.FirstPoint := 1;
Slide.ModelPeriod.LastPoint := 10;
Slide.Width := 3;
Slide.CenterMovingAverage := True;
res := Slide.Execute();
If res <> 0 Then
System.Diagnostics.Debug.WriteLine(Slide.Errors);
Else
System.Diagnostics.Debug.WriteLine("== Сглаженный ряд ==");
ar := Slide.Fitted;
For i := 0 To Slide.ModelPeriod.LastPoint - 1 Do
d := ar[i] As double;
System.Diagnostics.Debug.WriteLine(i.ToString() + ". " + d.ToString());
End For;
End If;
End Sub;
См. также: