Thema: Delphi Determinanten Berechnung

Einzelnen Beitrag anzeigen

krutho

Registriert seit: 12. Jun 2007
9 Beiträge
 
#1

Determinanten Berechnung

  Alt 30. Jun 2007, 15:43
Hallo erst einmal. Hab grad mal versucht ein Programm zu schreiben, was die Determinante einer beliebigen Matrix berechnet. Bekomme allerdings eine Fehlermeldung, Fehler liegt augenscheinich an der markierten Stelle. Bin grad zu blöd den Fehler zu entdecken. Könnt ihr mir vielleicht helfen?. Mal so nebenbei ... Kann mann Stringgrids irgendwie umstellen, so dass man ganz normal wie in editfelder schreiben kann?

Delphi-Quellcode:
procedure TForm4.ButtonDetOnClick(Sender:Tobject);
var i,j,n:integer;
    matrixA:T2DMatrix;

Begin
  n:=SG1.ColCount;
  SetLength(matrixA,n,n);
    for i:= 0 to n-1 do
      for j:= 0 to n-1 do
        begin
          matrixA[i,j]:=StrtoFloat(SG1.Cells[j,i]);
        end;
EditDet.text:=FloatToStr(matrixdet(matrixA,n));
end;

function TForm4.MatrixDet(matrixN:T2DMatrix;n:integer):double;
var matrizen:array of T2Dmatrix;
  i,j,k,l:integer;
Begin
  if n =2 then
  begin
    result:= (matrixn[0,0]*matrixn[1,1])-(matrixn[1,0]*matrixn[0,1]);
  end
  else
  begin
  setlength(matrizen,n);
  for i:= 0 to n-1 do
  begin
  l:=0;
    for k:= 0 to n-1 do
      begin
        if i = k
          then

          else
             begin
              for
                j:= 1 to n-1 do
                  begin
                    [color=#0000ff]matrizen[i,j,k]:= matrixN[j,l];[/color]
                  end;
              end;
              l:=l+1;
        end;
    end;
  result:=0;
  for i:= 0 to n-1 do
      begin
        result:=result + (intpower(-1,i)* matrixn[1,i]* matrixdet(matrizen[i],n-1));
      end;
  end;
end;
  Mit Zitat antworten Zitat