Для выполнения примера предполагается наличие в репозитории контейнера моделирования с идентификатором "Kont_Model". В контейнере содержится модель "Model_1", настроенная на расчет с использованием метода универсального тренда.
Sub Main;
Var
MB: IMetabase;
Model: IMsModel;
Trans: IMsFormulaTransform;
TransVar: IMsFormulaTransformVariable;
Tree: IMsFormulaTransformSlicesTree;
Selector: IMsFormulaTransformSelector;
CurveEst: IMsCurveEstimationTransform;
Coo: IMsFormulaTransformCoord;
Calc: IMsMethodCalculation;
Period: IMsModelPeriod;
Result: IMsModelCalculationResult;
SmCurve: ISmCurveEstimation;
Ar: Array Of double;
i: Integer;
Begin
MB := MetabaseClass.Active;
//Расчитываемая модель
Model := MB.ItemByIdNamespace("Model_1", MB.ItemById("Kont_Model").Key).Bind As IMsModel;
Trans := Model.Transform;
TransVar := Trans.Outputs.Item(0);
Tree := TransVar.SlicesTree(TransVar);
Selector := Trans.CreateSelector;
Selector.Slice := Tree.CreateSlice(1);
CurveEst := Trans.Transform(Selector).Method As IMsCurveEstimationTransform;
//Координата, по которой производится расчет
Coo := Trans.CreateCoord(TransVar);
Calc := Trans.CreateCalculation;
//Установка периодов идентификации и прогнозирования
Period := Calc.Period;
Period.IdentificationStartDate := Model.IdentificationStartDate;
Period.IdentificationEndDate := Model.IdentificationEndDate;
Period.ForecastStartDate := Model.ForecastStartDate;
Period.ForecastEndDate := Model.ForecastEndDate;
//Расчет модели с использованием лучшей формы зависимости
Result := CurveEst.Execute(Calc, Coo);
SmCurve := Result.StatMethod As ISmCurveEstimation;
Debug.WriteLine("Сглаженный ряд");
Ar := SmCurve.DependenceForms.Item(0).Fitted;
For i := 0 To Ar.Length - 1 Do
Debug.WriteLine(Ar[i]);
End For;
Debug.WriteLine("Прогноз");
Ar := SmCurve.DependenceForms.Item(0).Forecast.Value;
For i := 0 To Ar.Length - 1 Do
Debug.WriteLine(Ar[i]);
End For;
End Sub Main;
После выполнения примера будет осуществлен расчет модели. В консоль среды разработки будут выведены значения сглаженного ряда и прогноза, полученные в результате расчета.
См. также: