Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
Delphi 10.4 Sydney
|
AW: Übergabe einer Matrix an Unterprogramm
23. Aug 2011, 22:34
Die rechte Seite brauchst du nicht zu übergeben, das kann Inverse erledigen.
Delphi-Quellcode:
type
TMat = array of array of double;
function Reziproke(const A: TMat): TMat;
var
N, I, J, K, L: integer;
Q: double;
G, B: TMat;
begin
N:= Length(A);
SetLength(G, N, N);
SetLength(B, N, N);
SetLength(Result, N, N);
// Umspeichern, Rechte Seite setzen
for I:= 0 to N-1 do
begin
for J:= 0 to N-1 do
begin
G[I, J]:= A[I, J];
B[I, J]:= 0;
end;
B[I, I]:= 1;
end;
// Gauss mit N Rechten Seiten
..
..
end;
procedure TForm1.Button7Click(Sender: TObject);
var
A, R: TMat;
N, I, J: integer;
begin
N:= 3;
SetLength(A, N, N); // Matrix
A[0, 0]:= 1; A[0, 1]:= 2; A[0, 2]:= 0;
A[1, 0]:= 2; A[1, 1]:= 3; A[1, 2]:= 0;
A[2, 0]:= 3; A[2, 1]:= 4; A[2, 2]:= 1;
R:= Reziproke(A);
// for I:= 0 to N-1 do for J:= 0 to N-1 do ShowMessage (FloatToStr(R[I, J]));
SetLength(A, 0); // Matrix
SetLength(R, 0); // Reziproke
end;
Geändert von Bjoerk (23. Aug 2011 um 22:37 Uhr)
Grund: Tippfehler
|
|
Zitat
|