Программная реализация модального управления для линейных стационарных систем
| Категория реферата: Рефераты по радиоэлектронике
| Теги реферата: шпаргалки по педагогике, судебная реферат
| Добавил(а) на сайт: Anzhelika.
Предыдущая страница реферата | 16 17 18 19 20 21 22 23 24 25 26 | Следующая страница реферата
NewNode^.Next := ValuesStack;
ValuesStack := NewNode; end; { procedure Push }
procedure Pop (var ValuesStack: Ptr;
CurrentValues: TMatrix); var
OldNode : Ptr; begin
OldNode := ValuesStack;
ValuesStack := OldNode^.Next;
CurrentValues.Assign(OldNode^.Values);
OldNode^.Values.Free;
Dispose(OldNode); end; { procedure Pop }
procedure GetValues(NumReturn, NumIntervals: Word; var ValuesStack: Ptr;
SolutionValues: TMatrix); var
Index, Term: Integer; j: Word;
CurrValues: TMatrix; begin
SolutionValues.ReSize(NumTimeCol, Succ(NumReturn));
CurrValues := TMatrix.Create(NumTimeCol, 1);
Term := NumIntervals; for Index := NumReturn downto 0 do begin
Pop(ValuesStack, CurrValues);
Dec(Term); while (Term / NumIntervals >= Index / NumReturn) and (Term >= 0) do begin
Pop(ValuesStack, CurrValues);
Dec(Term); end; for j := 1 to NumTimeCol do
SolutionValues[j, Succ(Index)] := CurrValues.Items[j]; end;
CurrValues.Free; end; { procedure GetValues }
procedure Step(Spacing: Float; CurrentValues: TMatrix; F: TMatrix); var i : byte; begin for i := 1 to NumEquations do
F.Items[i] := Spacing * TargetALL (matrixA, matrixB, CurrentValues, i); end; { procedure Step }
begin
NumEquations := matrixA.RowCount;
NumTimeCol := Succ(NumEquations);
ValuesStack := nil;
Spacing := (UpperLimit - LowerLimit) / NumIntervals;
CurrentValues := TMatrix.Create(1, 1);
CurrentValues.Assign(InitialValues);
CurrentValues.ReSize(NumTimeCol, 1);
CurrentValues.Items[NumTimeCol] := LowerLimit;
TempValues := TMatrix.Create(NumTimeCol, 1);
F1 := TMatrix.Create(NumTimeCol, 1);
F2 := TMatrix.Create(NumTimeCol, 1);
F3 := TMatrix.Create(NumTimeCol, 1);
F4 := TMatrix.Create(NumTimeCol, 1);
Push(ValuesStack, CurrentValues);
HalfSpacing := Spacing / 2; for Index := 1 to NumIntervals do begin
{ First step - calculate F1 }
Step(Spacing, CurrentValues, F1);
TempValues.Items[NumTimeCol] := CurrentValues.Items[NumTimeCol] +
HalfSpacing; for Term := 1 to NumEquations do
TempValues.Items[Term] := CurrentValues.Items[Term] + 0.5 *
F1.Items[Term];
{ 2nd step - calculate F2 }
Step(Spacing, TempValues, F2); for Term := 1 to NumEquations do
TempValues.Items[Term] := CurrentValues.Items[Term] + 0.5 *
F2.Items[Term];
{ Third step - calculate F3 }
Step(Spacing, TempValues, F3);
Рекомендуем скачать другие рефераты по теме: виленкин математика 6 класс решебник, шпора на пятке лечение, дипломная работа формирование.
Категории:
Предыдущая страница реферата | 16 17 18 19 20 21 22 23 24 25 26 | Следующая страница реферата