Ich arbeite an einem Algorithmus, der die Determinante einer beliebigen n * n Matrix berechnet, hier ist mein Code:
%Vor%Es funktioniert rekursiv, es funktioniert für eine 2 * 2 Matrix (ich habe das mit Det [] überprüft), aber es funktioniert nicht für eine Matrix höheren Grades als 2!
Ich möchte diese Lösung selbst lösen - ich möchte das selbst implementieren, anstatt einfach Det
zu verwenden - aber ich würde es begrüßen, wenn jemand hier erklären könnte, was mit der Rekursion falsch ist?
Sie sollten die Determinante nicht rekursiv berechnen, es braucht viel Zeit. Die einfachste Methode besteht darin, die erste Spalte zu betrachten und festzustellen, ob ein Element von 0 verschieden ist. Ist dies nicht der Fall, dann ist die Determinante gleich 0. Ansonsten nehmen Sie dieses Element und für jede Zeile in der Matrix eine andere als die gewählte Element subtrahieren die Zeile des ausgewählten Elements multipliziert mit der Symmetrie des ersten Elements der aktuellen Zeile. Diese Subtraktion sollte Sie mit einer Linie verlassen, die 0 als ihr erstes Element hat. Dann können Sie die erste Spalte und die Zeile des ausgewählten Elements eliminieren und die Determinante n-1 mit (-1) ^ (line_index + column_index) * choiced_element multiplizieren.
Tags und Links algorithm wolfram-mathematica