Einzelnen Beitrag anzeigen

Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Übergabe einer Matrix an Unterprogramm

  Alt 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
  Mit Zitat antworten Zitat