Расчет модели

Для выполнения примера предполагается наличие в репозитории контейнера моделирования с идентификатором "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;

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

См. также:

Примеры