ILoVariable.Retrospective

Синтаксис

Retrospective: Array;

Описание

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

Пример

Sub Main;

Var

FPAS: LinearDecomposition;

Vrbl: ILoVariable; //переменная с ретроспективой

Addend: ILoAddend; //слагаемое

Eq: ILoEquation; //уравнение

VarS: ILoVariables; //список переменных

AddendS: ILoAddends; //список слагаемых

EqS: ILoEquations; //список уравнений

Res: ILinDecompResults;

Retro, Forestall: Array[2] Of double;

Trajectory: Array[5] Of double;

I: integer;

TimeInterval: Integer;

S: string;

Begin

FPAS := New LinearDecomposition.Create;

// ПЕРЕМЕННЫЕ

Retro := New Double[2];

Retro[0] := 1;

Retro[1] := 2;

Forestall := New Double[2];

Forestall[0] := 3;

Forestall[1] := 4;

Trajectory := New Double[5];

For i := 0 To 4 Do

Trajectory[i] := 2 + i;

End For;

Vars:= FPAS.Variables;

For I := 1 To 2 Do

s := "x" + i.ToString;

Vrbl:=Vars.Add(s);

Vrbl.Retrospective := Retro;

Vrbl.Forestall := Forestall;

End For;

// Управляющая переменная

Vrbl := Vars.Add("U2");

Vrbl.Name := "Control Variable";

Vrbl.Retrospective := Retro;

Vrbl.Forestall := Forestall;

Vrbl.Trajectory := Trajectory;

Vrbl.ControlVariable := True;

 

// УРАВНЕНИЯ

EqS := FPAS.Equations;

 

// УРАВНЕНИе №1

Eq := EqS.Add;

AddendS := Eq.Addends;

Addend := Addends.Add(Vars.FindById("x1")); //левая часть уравнения

Addend.Coeff := 1;//коэф. при переменной

Addend.Lag := 0;//лаг

Addend := Addends.Add(Vars.FindById("x1")); //первое слагаемое

Addend.Coeff := 2;//коэф. при переменной

Addend.Lag := 1;//лаг

Addend := Addends.Add(Vars.FindById("x1"));//второе слагаемое

Addend.Coeff := 0.25 ;//коэф. при переменной

Addend.Lag := -1;//лаг

Addend := Addends.Add(Vars.FindById("U2")); //управляющая переменная

Addend.Coeff := 1; //коэф. при переменной

Addend.Lag := 1; //лаг

// УРАВНЕНИе №2

Eq := EqS.Add;

AddendS := Eq.Addends;

Addend := Addends.Add(Vars.FindById("x2")); //левая часть уравнения

Addend.Coeff := 1;//коэф. при переменной

Addend.Lag := 0;//лаг

Addend := Addends.Add(Vars.FindById("x1")); //первое слагаемое

Addend.Coeff := 12.6;//коэф. при переменной

Addend.Lag := -1;//лаг

Addend := Addends.Add(Vars.FindById("x2"));//второе слагаемое

Addend.Coeff := 26;//коэф. при переменной

Addend.Lag := 1; //лаг

 

FPAS.Extremum:=ExtremumType.Maximum;

TimeInterval := 5;

Res := FPAS.Evaluate(TimeInterval) As ILinDecompResults;

Debug.WriteLine(Res.ErrorMsg);

End Sub Main;

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

См. также:

ILoVariable