IModelling.AbsI

Синтаксис Fore

AbsI(Input: Variant): Variant;

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

AbsI(Input: object; Context: Prognoz.Platform.Interop.Fore.ForeRuntimeContext): object;

Параметры

Input. Переменная;

Context. Контекст. Параметр используется только в Fore.NET.

Описание

Метод AbsI возвращает абсолютное значение (модуль) точек указанной переменной, если она содержит только целые значения.

Комментарии

Для расчёта модуля точек переменной, содержащей не только целые значения, используйте метод IModelling.Abs.

Пример Fore

Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором «MS». В данном контейнере содержится модель с идентификатором «MODEL_D», рассчитываемая методом детерминированного уравнения и содержащая хотя бы одну входную переменную.

Добавьте ссылки на системные сборки «Metabase», «Ms».

Sub UserAbsI;
Var
    Mb: IMetabase;
    ModelSpace, ModelObj: IMetabaseObject;
    Transf: IMsFormulaTransform;
    Formula: IMsFormula;
    Model: IMsModel;
    Determ: IMsDeterministicTransform;
    TransVar: IMsFormulaTransformVariable;
    Slice: IMsFormulaTransformSlice;
    TermInfo: IMsFormulaTermInfo;
    Expr: IExpression;
Begin
    Mb := MetabaseClass.Active;
    ModelSpace := Mb.ItemById("MS").Bind;
    ModelObj := Mb.ItemByIdNamespace("MODEL_D", ModelSpace.Key).Edit;
    Model := ModelObj As IMsModel;
    Transf := Model.Transform;
    Formula := Transf.FormulaItem(0);
    Determ := Formula.Method As IMsDeterministicTransform;
    TransVar := Transf.Inputs.Item(0);
    Slice := TransVar.Slices.Item(0);
    TermInfo := Transf.CreateTermInfo;
    TermInfo.Slice := Slice;
    Expr := Determ.Expression;
    Expr.References := "Ms";
    Expr.AsString := "AbsI(" + TermInfo.TermInnerText + ")";
    If Expr.Valid
         Then ModelObj.Save;
        Else Debug.WriteLine("Модель не сохранена: ошибка в формуле");
    End If;
End Sub UserAbsI;

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

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.ForeSystem;
Imports Prognoz.Platform.Interop.Ms;

Public Shared Sub Main(Params: StartParams);
Var
    Mb: IMetabase;
    ModelSpace, ModelObj: IMetabaseObject;
    Transf: IMsFormulaTransform;
    Formula: IMsFormula;
    Model: IMsModel;
    Determ: IMsDeterministicTransform;
    TransVar: IMsFormulaTransformVariable;
    Slice: IMsFormulaTransformSlice;
    TermInfo: IMsFormulaTermInfo;
    Expr: IExpression;
Begin
    Mb := Params.Metabase;
    ModelSpace := Mb.ItemById["MS"].Bind();
    ModelObj := Mb.ItemByIdNamespace["MODEL_D", ModelSpace.Key].Edit();
    Model := ModelObj As IMsModel;
    Transf := Model.Transform;
    Formula := Transf.FormulaItem[0];
    Determ := Formula.Method As IMsDeterministicTransform;
    TransVar := Transf.Inputs.Item[0];
    Slice := TransVar.Slices.Item[0];
    TermInfo := Transf.CreateTermInfo();
    TermInfo.Slice := Slice;
    Expr := Determ.Expression;
    Expr.References := "Ms";
    Expr.AsString := "AbsI(" + TermInfo.TermInnerText + ")";
    If Expr.Valid
        Then ModelObj.Save();
        Else System.Diagnostics.Debug.WriteLine("Модель не сохранена: ошибка в формуле");
    End If;
End Sub;

Пример использования в выражениях

Выражение 1:

AbsI({Brazil|BCA})

Результат: для каждого наблюдения показателя Brazil|BCA будет рассчитано абсолютное значение. Если показатель содержит вещественные значения, то возникнет ошибка.

Применение: можно использовать в формулах вычисляемых рядов базы данных временных рядов и в формулах моделей контейнера моделирования, являющегося дочерним по отношению к базе данных временных рядов.

Выражение 2:

AbsI(X1)

Результат: для каждой точки фактора X1 будет рассчитано абсолютное значение.

Применение: можно использовать в формулах моделей контейнера моделирования.

Выражение 3:

AbsI(-7)

Результат: 7.

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

См. также:

IModelling | База данных временных рядов: Калькулятор, Абсолютное значение | Контейнер моделирования: Редактирование регрессора/формулы