Ich versuche, die Determinante einer quadratischen Matrix mit Zeilenoperationen zu berechnen. Ich stieß auf diesen Code, aber ich verstehe nicht wirklich, wie es funktioniert.Berechnung der Determinante einer Matrix
Was machen subi
und subj
? Werden Zeilenoperationen verwendet?
Was ist die Logik hinter diesem Code?
int c, subi, i, j, subj;
double submat[10][10],d=0;
if (n == 2) {
return((mat[0][0] * mat[1][1]) - (mat[1][0] * mat[0][1]));
}
else {
for (c = 0; c < n; c++) {
subi = 0;
for (int i = 1; i < n; i++) {
subj = 0;
for (j = 0; j < n; j++) {
if (j == c)
continue;
submat[subi][subj] = mat[i][j];
subj++;
}
subi++;
}
d = d + (pow(-1, c)*mat[0][c] * determinant(n - 1, submat));
}
}
return d;
Sie vermissen die Funktionssignatur, die ungefähr so aussieht wie 'doppelte Determinante (int n, doppelte Matte [10] [10])' –
Hier ist ein Beispiel für [Determinante einer Matrix] (http: //www.geeksforgeeks. org/determinant-of-a-matrix /) erklärt ziemlich nett. submat ist eine temporäre Matrix mit der Zeile subi und der Spalte subj. – Skywrath