Problem bei der Determinantenberechnung
-
Hi leute ich hab ein problem bei meiner determinantenberechnung, ich sitz schon seit stunden dran find aber den Fehler net.
Die determinante wird zwar richtig berechnet aber das vorzeichen macht was es will. Ich hoff ihr könnt mir helfen!{ det=1; a=0; for (i=1;i<=x;i++) { a++; if (C[i][j]==0 && i<x) { for (p=(i+1);p<=x;p++) { for (r=(x*2);r>=1;r--) { if (C[p][i]==0) {continue;} else if (C[p][i]!=0) { t=C[i][r]; C[i][r]=C[p][r]; C[p][r]=t; } } } } if (C[i][i]==0) { (det=0); } else if (C[i][i]!=0) { det*=C[i][i]; for (j=(x*2);j>=i;j--) { C[i][j]=C[i][j]/C[i][i]; } for (q=x;q>=1;q--) { for (k=(x*2);k>=i;k--) { if (q==a) {continue;} else { C[q][k]=((-1)*(C[q][i]*C[i][k]))+C[q][k]; } } } } } }
-
Hi,
schwer lesbar das Ganze.
Unwahrscheinlich, dass du die Determinante wirklich richtig berechnest.
s. Z.B.| 0 1 | | 1 0 |if (C[i][i]==0) { (det=0); }Jockel
-
Hallo,
in modernen Programmen berechnet man die det(A) nicht direkt, keine Ahnung was du da machst. Sehe durch deinen Code auch nicht durch.
gut ist immer bei Numerischer Mathematik zu sagen was und vor ALLEM wie man etwas machen will.det(A) = det(Q*R)
Q ist orthogonal und R ist obere Dreiecksmatrix.
Quellcode findest du im Netz unter QR Zerlegungdet(A) = det(Q*R) = det(Q)*det(R)
det(Q) = 1 oder -1
und det(R) ist das Produkt aller Diagonalelemente R_ii
Viel Spass