Determinante rekursiv berechne < Maple < Mathe-Software < Mathe < Vorhilfe
|
Hallo!
Ich habe ein Problem mit folgender Prozedur. Sie soll rekursiv die Determinante einer Matrix durch Entwicklung nach der ersten Zeile berechnen:
rdet := proc (A)
local n, d, sgn, k;
n := RowDimension(A);
if n = 1 then
d := A[1, 1] :
else
d := 0;
sgn := 1;
for k to n do
d := d+sgn*A[1, k]*rdet(SubMatrix(A, [2 .. n], [1 .. k-1, k+1 .. n]));
sgn := -sgn:
end do:
end if;
return d;
end proc;
Jetzt sollte ich doch eigentlich mit rdet(A); die Determinante von A berechnen können. Ich bekomme jedoch immer diese Fehlermeldung:
Error, (in rdet) final value in for loop must be numeric or character
Was mache ich hier falsch?
Ich freue mich über jede Hilfe
mfg
|
|
|
|
Hi,
Du musst das Package LinearAlgebra laden, um RowDimension benutzen zu können:
with(LinearAlgebra)
Allerdings sollte man besser prüfen, ob die Matrix auch quadratisch ist. Sonst ist eine
Determinante garnicht definiert.
mfg
nschlange
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:49 Mo 28.05.2007 | Autor: | bratwurst |
Ahh...danke! Das hatte ich wohl vergessen
|
|
|
|