Программная реализация модального управления для линейных стационарных систем
Категория реферата: Рефераты по радиоэлектронике
Теги реферата: шпаргалки по педагогике, судебная реферат
Добавил(а) на сайт: Anzhelika.
Предыдущая страница реферата | 16 17 18 19 20 21 22 23 24 25 26 | Следующая страница реферата
procedure TMatrix.SetSingle; var i: Word; begin if FCols FRows then
Raise EMatrixOperatingError.Create ('Единичная матрица должна быть '+
'квадратной') else begin
SetNull; for i := 1 to FCols do SetCell (i, i, 1); end; end;
procedure TMatrix.SetNegative; var i: LongInt; begin for i := 1 to FCols * FRows do SetItem(i, - GetItem(i)); end;
procedure TMatrix.AddConst (AConst: Float); var i: LongInt; begin for i := 1 to FCols * FRows do SetItem (i, GetItem(i) + AConst); end;
procedure TMatrix.AddMatrix (AMatrix: TMatrix); var i: LongInt; begin for i := 1 to FCols * FRows do SetItem (i, GetItem(i) + AMatrix.Items
[i]); end;
procedure TMatrix.MultConst (MConst: Float); var i: LongInt; begin for i := 1 to FCols * FRows do SetItem (i, GetItem(i) * MConst); end;
procedure TMatrix.MultFromRight (MMatrix: TMatrix); var j, i, k: Word;
DummyRes: Float;
DummyMatrix: TMatrix; begin
DummyMatrix := TMatrix.Create (MMatrix.ColCount, FRows); if FCols MMatrix.RowCount then
Raise EMatrixOperatingError.Create ('Перемножаемые матрицы должны быть '+
'соответствующей размерности') else for i := 1 to FRows do for j := 1 to MMatrix.ColCount do begin
DummyRes := 0; for k := 1 to FCols do
DummyRes := DummyRes + Cells[k, i] * MMatrix[j, k];
DummyMatrix[j, i] := DummyRes; end;
Assign(DummyMatrix);
DummyMatrix.Free; end;
procedure TMatrix.MultFromLeft (MMatrix: TMatrix); var j, i, k: Word;
DummyRes: Float;
DummyMatrix: TMatrix; begin
DummyMatrix := TMatrix.Create (FCols, MMatrix.RowCount); if MMatrix.ColCount FRows then
Raise EMatrixOperatingError.Create ('Перемножаемые матрицы должны быть '+
'соответствующей размерности') else for i := 1 to MMatrix.ColCount do for j := 1 to FCols do begin
DummyRes := 0; for k := 1 to MMatrix.ColCount do
DummyRes := DummyRes + MMatrix[k, i] * Cells[j, k];
DummyMatrix[j, i] := DummyRes; end;
Assign(DummyMatrix);
DummyMatrix.Free; end;
procedure TMatrix.NthPower (Power: Word); var i: Word;
DummyMatrix: TMatrix; begin
DummyMatrix := TMatrix.Create (FCols, FRows);
DummyMatrix.Assign (Self); if FCols FRows then
Raise EMatrixOperatingError.Create ('Возводимая в степень матрица должна '+
'быть квадратной') else case Power of
0 : SetSingle;
1 : begin end; else for i := 2 to Power do MultFromRight (DummyMatrix); end;
DummyMatrix.Free; end;
procedure TMatrix.Transpose; var i, j: Word;
Dummy: Float; begin if FCols FRows then
Raise EMatrixOperatingError.Create ('Транспонируемая матрица должна быть '+
'квадратной') else for i := 1 to FCols do for j := 1 to FRows do if j > i then begin
Dummy := GetCell(j, i);
SetCell(j, i, GetCell(i, j));
SetCell(i, j, Dummy); end end;
function TMatrix.Inverse: Boolean; var
DummyMatrix: TMatrix;
Divisor, Multiplier: Float;
Row, RefRow, NewRow, Term: Word;
Рекомендуем скачать другие рефераты по теме: виленкин математика 6 класс решебник, шпора на пятке лечение, дипломная работа формирование.
Предыдущая страница реферата | 16 17 18 19 20 21 22 23 24 25 26 | Следующая страница реферата