1
1143
Gast
Hallo,
bei der folgenden Aufgabe komme ich einfach nicht weiter, vllt. kann mir ja hier im Forum einer helfen ... Es geht darum die Determinante einer Matrix mit Hilfe des Entwicklungssatzes von Laplace zu berechnen.
a) Erstellen Sie eine Methode public float berechneDeterminante2x2(float a, float b, float c, float d), mit deren Hilfe die Determinante einer 2x2 Matrix berechnet werden kann.
b) Erstellen Sie eine Methode private float[][] extrahiereSubmatrix(float[][] matrix, int x), mit der aus dem zweidimensionalen Feld matrix diejenige Submatrix extrahiert werden kann, die für die Entwicklung der Determinanten nach der ersten Zeile notwendig ist. Der Wert x gibt dabei den Spaltenindex (beginnend bei 0) der aktuellen Entwicklung an.
c) Erstelllen Sie eine rekursive Methode public float berechneDeterminante(float[][] matrix), welche die Determinante einer beliebigen nxn Matrix berechnet. Nutzen Sie, wenn möglich, die zuvor erstellte Methode extrahiereSubmatrix.
Hier ist der Link zur kompletten Aufgabenstellung [Aufgabe 5].
Also, a) ist schon mal klar:
b) ging auch nach ein bisschen Überlegen:
c) hier hab ich leider überhaupt keine Ahnung, hört sich zwar jetzt blöd an, ist aber leider so.
Ich weiß, ihr macht nicht anderer Leute Hausaufgaben, will ich auch gar nicht. Ich bräuchte nur einen kleinen Tipp oder so ne Art Hinweis, der mir hilft auf die richtige Lösung zu kommen ...
bei der folgenden Aufgabe komme ich einfach nicht weiter, vllt. kann mir ja hier im Forum einer helfen ... Es geht darum die Determinante einer Matrix mit Hilfe des Entwicklungssatzes von Laplace zu berechnen.
a) Erstellen Sie eine Methode public float berechneDeterminante2x2(float a, float b, float c, float d), mit deren Hilfe die Determinante einer 2x2 Matrix berechnet werden kann.
b) Erstellen Sie eine Methode private float[][] extrahiereSubmatrix(float[][] matrix, int x), mit der aus dem zweidimensionalen Feld matrix diejenige Submatrix extrahiert werden kann, die für die Entwicklung der Determinanten nach der ersten Zeile notwendig ist. Der Wert x gibt dabei den Spaltenindex (beginnend bei 0) der aktuellen Entwicklung an.
c) Erstelllen Sie eine rekursive Methode public float berechneDeterminante(float[][] matrix), welche die Determinante einer beliebigen nxn Matrix berechnet. Nutzen Sie, wenn möglich, die zuvor erstellte Methode extrahiereSubmatrix.
Hier ist der Link zur kompletten Aufgabenstellung [Aufgabe 5].
Also, a) ist schon mal klar:
Code:
static public float berechneDeterminante2x2(float a, float b, float c, float d){
return (a*d)-(b*c);
}
b) ging auch nach ein bisschen Überlegen:
Code:
static private float[][] extrahiereSubmatrix(float[][] matrix, int x){
int length = matrix.length - 1;
float[][] subMatrix = new float[length][length];
for(int a = 0; a < length; a++){
for(int b = 0; b < length; b++){
if(x <= b){subMatrix[a][b] = matrix[a+1][b+1];} else {subMatrix[a][b] = matrix[a+1][b];}
}
}
return subMatrix;
}
c) hier hab ich leider überhaupt keine Ahnung, hört sich zwar jetzt blöd an, ist aber leider so.
Ich weiß, ihr macht nicht anderer Leute Hausaufgaben, will ich auch gar nicht. Ich bräuchte nur einen kleinen Tipp oder so ne Art Hinweis, der mir hilft auf die richtige Lösung zu kommen ...