Verfasst am: 27.11.2014, 23:13
Titel: Der Laplace'sche Entwicklungssatz
Hallo,
ich belege gerade einen Einsteigerkurs in Matlab. Im Rahmen der Veranstaltung soll ich eine Funktion schreiben, welche die Determinante einer nxn Matrix nach dem Laplace'sche Entwicklungssatz bestimmt. Hier das Programm das ich geschrieben habe. Für Matrixen mit der Dimension 1x1, 2x2 und 3x3 werden korrekte Werte ausgespuckt. Ab 4x4 werden falsche Werte ausgespuckt. Den Grund hierfür habe ich noch nicht gefunden. Vielleicht habt ihr ja eine Idee!
Code:
%d wird aus dem Hauptprogramm heraus mit 0 initialisiert
function d=Det(A,d)
if m == 1% Sonderfall: 1x1 Matrix
d = A(1,1);
elseif m == 2% Sonderfall: 2x2 Matrix
d = A(1,1)*A(2,2)-A(1,2)*A(2,1);
elseif m > 2;
for j=1:n
D = A(C,B(B~=j));
d = d + ((-1)^(j+1))* A(1,j) * DetMatrix(D,0); % rekursive Berechnung end end else disp('A is not a square matrix!');
end end
Um die Anzahl an Rechenoperationen zu verringern, könnte man jetzt noch als Optimierung bestimmen nach welcher Reihe entwickelt werden soll. Also nach der Reihe mit den meisten Nullen
Vielen Dank für die schnelle Antwort. Programm funktioniert jetzt 1a!
Gruß
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.