Hallo,
wie muss ein Java-Programm aussehen, welches mit Hilfe des Gaußschen Eliminationsverfahrens
ein LGS Ax = b löst. Die erforderlichen Methoden sollen in eine Klasse LGS eingebaut werden:
Die gesamten Daten (Matrix A und rechte Seite b werden in einer Matrix mit n Zeilen
und n+1 Spalten gespeichert. Dabei enthält die letzte Spalte die rechte Seite.
Mit zwei Konstruktoren:
LGS() fragt von Tastatur die Anzahl der Gleichungen ab. Danach werden die Koeffizienten
des Gleichungssystems und die rechte Seite von Tastatur abgefragt.
LGS(double [][] A) übernimmt die Koeffizientenmatrix und rechte
Seite aus den Argumenten.
Test für den zweiten Konstruktor, mit fogendem LGS
double[][] A = {3, -4,7,8},{1, 0, 1,2},{2, -8, 7, 10}};
LGS testLGS = new LGS(A);
Realisierung der folgende Methoden:
tauscheZeilen(int i, int j): tauscht die i-te und die j-te Zeile des LGS.
addiereVielfaches(int i, int j, double z): addiert das z-fache der i-ten
Zeile zur j-ten Zeile.
loeseLGS(): bringt das LGS auf Zeilenstufenform und löst rückwärts auf. Falls nötig,
sind dabei Zeilen zu tauschen.
ausgabe() gibt das LGS aus. Nutzen Sie diese Methode auch, um zu testen, ob
ihre obigen Methoden korrekt arbeiten.
Mein Programm sieht bis jetzt so aus:
class LGS {
double [][] A; // erweiterte Koeffizientenmatrix
LGS() {
A = new double[3][4];
A[0][0]=3; A[0][1]=-4;A[0][2]=7;A[0][3]=8;
A[1][0]=1; A[1][1]=0;A[1][2]=1;A[1][3]=2;
A[2][0]=2; A[2][1]=-8;A[2][2]=7;A[2][3]=10;
}
void ausgabe() {
System.out.println("******************");
for (int i=0;i<A.length;i++) {
for (int j=0;j<A[0].length;j++)
System.out.print(" A["+i+"]["+j+"]="+A[j]);
System.out.println();
}
}
void tauscheZeilen(int i, int j) {
for (int k=0;k<4;k++) {
double tmp = A[k];
A[k]=A[j][k];
A[j][k]=tmp;
}
}
public static void main(String args[]) {
LGS test = new LGS();
test.ausgabe();
test.tauscheZeilen(0,1);
test.ausgabe();
}
}
Weiss leider nicht, wie ich weiter machen soll, ich hoffe, es kann mir jemand helfen! Danke
wie muss ein Java-Programm aussehen, welches mit Hilfe des Gaußschen Eliminationsverfahrens
ein LGS Ax = b löst. Die erforderlichen Methoden sollen in eine Klasse LGS eingebaut werden:
Die gesamten Daten (Matrix A und rechte Seite b werden in einer Matrix mit n Zeilen
und n+1 Spalten gespeichert. Dabei enthält die letzte Spalte die rechte Seite.
Mit zwei Konstruktoren:
LGS() fragt von Tastatur die Anzahl der Gleichungen ab. Danach werden die Koeffizienten
des Gleichungssystems und die rechte Seite von Tastatur abgefragt.
LGS(double [][] A) übernimmt die Koeffizientenmatrix und rechte
Seite aus den Argumenten.
Test für den zweiten Konstruktor, mit fogendem LGS
double[][] A = {3, -4,7,8},{1, 0, 1,2},{2, -8, 7, 10}};
LGS testLGS = new LGS(A);
Realisierung der folgende Methoden:
tauscheZeilen(int i, int j): tauscht die i-te und die j-te Zeile des LGS.
addiereVielfaches(int i, int j, double z): addiert das z-fache der i-ten
Zeile zur j-ten Zeile.
loeseLGS(): bringt das LGS auf Zeilenstufenform und löst rückwärts auf. Falls nötig,
sind dabei Zeilen zu tauschen.
ausgabe() gibt das LGS aus. Nutzen Sie diese Methode auch, um zu testen, ob
ihre obigen Methoden korrekt arbeiten.
Mein Programm sieht bis jetzt so aus:
class LGS {
double [][] A; // erweiterte Koeffizientenmatrix
LGS() {
A = new double[3][4];
A[0][0]=3; A[0][1]=-4;A[0][2]=7;A[0][3]=8;
A[1][0]=1; A[1][1]=0;A[1][2]=1;A[1][3]=2;
A[2][0]=2; A[2][1]=-8;A[2][2]=7;A[2][3]=10;
}
void ausgabe() {
System.out.println("******************");
for (int i=0;i<A.length;i++) {
for (int j=0;j<A[0].length;j++)
System.out.print(" A["+i+"]["+j+"]="+A[j]);
System.out.println();
}
}
void tauscheZeilen(int i, int j) {
for (int k=0;k<4;k++) {
double tmp = A[k];
A[k]=A[j][k];
A[j][k]=tmp;
}
}
public static void main(String args[]) {
LGS test = new LGS();
test.ausgabe();
test.tauscheZeilen(0,1);
test.ausgabe();
}
}
Weiss leider nicht, wie ich weiter machen soll, ich hoffe, es kann mir jemand helfen! Danke