Registriert seit: 12. Jun 2007
9 Beiträge
|
Determinanten Berechnung
30. Jun 2007, 16: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;
|
|
Zitat
|