Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Javakurs/Übungsaufgaben/Gauß-Algorithmus: Unterschied zwischen den Versionen

Zeile 5: Zeile 5:
 
Schreibt diese Methode mit 2 von euch gewählten, verschiedenen Schleifentypen.
 
Schreibt diese Methode mit 2 von euch gewählten, verschiedenen Schleifentypen.
  
Da wir uns erst morgen im Genaueren mit Methoden befassen werden, nutzt den angegebenen Methodenrumpf für eure Implementierung.
+
Da wir uns erst morgen im Genaueren mit Methoden befassen werden, nutzt den angegebenen Methodenkopf für eure Implementierung.
 
  public static void printVector(double[] vector) {
 
  public static void printVector(double[] vector) {
 
   
 
   
Zeile 15: Zeile 15:
 
'''2.)''' Schreibt nun eine Methode printMatrix(), die eine übergebenes, 2-dimensionales Array vom Typ double auf der Konsole ausgibt.
 
'''2.)''' Schreibt nun eine Methode printMatrix(), die eine übergebenes, 2-dimensionales Array vom Typ double auf der Konsole ausgibt.
  
Nutzt folgenden Methodenrumpf für eure Implementierung:
+
Nutzt folgenden Methodenkopf für eure Implementierung:
 
  public static void printMatrix(double[][] matrix) {
 
  public static void printMatrix(double[][] matrix) {
 
   
 
   
Zeile 23: Zeile 23:
 
   
 
   
  
'''3.)''' In dieser Aufgabe wollen wir eine Methode entwickeln, die mit Hilfe des gaußschen Eliminationsverfahrens ("Gauß-Algorithmus") ein lineares Gleichungssystem löst.
+
'''3.)''' In dieser Aufgabe wollen wir ein Programm entwickeln, das mit Hilfe des gaußschen Eliminationsverfahrens ("Gauß-Algorithmus") ein lineares Gleichungssystem löst.
  
 
Macht euch zunächst mit Hilfe des [http://de.wikipedia.org/wiki/Gau%C3%9Fsches_Eliminationsverfahren Wikipedia-Artikels] die prinzipielle Arbeitsweise des Algorithmus klar.
 
Macht euch zunächst mit Hilfe des [http://de.wikipedia.org/wiki/Gau%C3%9Fsches_Eliminationsverfahren Wikipedia-Artikels] die prinzipielle Arbeitsweise des Algorithmus klar.
  
Ein lineares Gleichungssystem lässt sich in der Form  Ax=b darstellen, wobei A die Koeffizientenmatrix, b der Zielvektor und x der gesuchte Lösungsvektor ist. Eure Methode soll die Koeffizientenmatrix und den Zielvektor übergeben bekommen, und den gesuchten Lösungsvektor nach Berechnung auf der Konsole ausgeben. Bei eurer Implementierung braucht ihr die Pivotisierung nicht beachten.
+
Ein lineares Gleichungssystem lässt sich in der Form  Ax=b darstellen, wobei A die Koeffizientenmatrix, b der Zielvektor und x der gesuchte Lösungsvektor ist. Koeffizientenmatrix und Zielvektor lassen durch ein 2-dimensionales, bzw. durch ein 1-dimensionales Array darstellen. Am Ende der Berechnung soll das Programm den Lösungsvektor auf der Konsole ausgeben. Bei eurer Implementierung braucht ihr die Pivotisierung nicht zu beachten.
  
Nutzt folgenden Methodenrumpf:
 
public static void gaussAlgorithm(double[][] coefficientMatrix, double[] targetVector[]) {
 
 
    ...
 
}
 
  
 
Hinweise:
 
Hinweise:
Zeile 43: Zeile 38:
 
2. Bestimmen des Lösungsvektors durch rückwärtseinsetzen   
 
2. Bestimmen des Lösungsvektors durch rückwärtseinsetzen   
  
Nutzt das bei Wikipedia angegebene Bespiel, um die korrekte Funktionsweise eurer Methode zu überprüfen und eure in 1.) und 2.) entwickelten Methoden, um Matrix und Vektoren an bestimmten Stellen des Algorithmus zu debug-Zwecken auszugeben.
+
Nutzt das bei Wikipedia angegebene Bespiel, um die korrekte Funktionsweise eures Programms zu überprüfen und eure in 1.) und 2.) entwickelten Methoden, um Matrix und Vektoren an bestimmten Stellen des Algorithmus zu debug-Zwecken auszugeben.

Version vom 2. April 2007, 16:15 Uhr

1.) Schreibt eine Methode printVektor(), die ein übergebenes, 1-dimensionales Array vom Typ double zeilenweise auf der Konsole ausgibt.

Mit welchen der während des Vortrages kennengelernten Schleifentypen lässt sich diese Methode realisieren?

Schreibt diese Methode mit 2 von euch gewählten, verschiedenen Schleifentypen.

Da wir uns erst morgen im Genaueren mit Methoden befassen werden, nutzt den angegebenen Methodenkopf für eure Implementierung.

public static void printVector(double[] vector) {

     ...
}

Nun könnt ihr die Methode in der main-Methode eurer Klasse benutzen.


2.) Schreibt nun eine Methode printMatrix(), die eine übergebenes, 2-dimensionales Array vom Typ double auf der Konsole ausgibt.

Nutzt folgenden Methodenkopf für eure Implementierung:

public static void printMatrix(double[][] matrix) {

     ...
}  

Testet eure beiden Methoden, indem ihr verschiedene Array deklariert und initialisiert, und anschließend den Methoden printVector() bzw. printMatrix() als Parameter übergebt.


3.) In dieser Aufgabe wollen wir ein Programm entwickeln, das mit Hilfe des gaußschen Eliminationsverfahrens ("Gauß-Algorithmus") ein lineares Gleichungssystem löst.

Macht euch zunächst mit Hilfe des Wikipedia-Artikels die prinzipielle Arbeitsweise des Algorithmus klar.

Ein lineares Gleichungssystem lässt sich in der Form Ax=b darstellen, wobei A die Koeffizientenmatrix, b der Zielvektor und x der gesuchte Lösungsvektor ist. Koeffizientenmatrix und Zielvektor lassen durch ein 2-dimensionales, bzw. durch ein 1-dimensionales Array darstellen. Am Ende der Berechnung soll das Programm den Lösungsvektor auf der Konsole ausgeben. Bei eurer Implementierung braucht ihr die Pivotisierung nicht zu beachten.


Hinweise:

Der Algorithmus arbeitet in 2 Etappen:

1. Erzeugen der Zeilen-Stufen-Form

2. Bestimmen des Lösungsvektors durch rückwärtseinsetzen

Nutzt das bei Wikipedia angegebene Bespiel, um die korrekte Funktionsweise eures Programms zu überprüfen und eure in 1.) und 2.) entwickelten Methoden, um Matrix und Vektoren an bestimmten Stellen des Algorithmus zu debug-Zwecken auszugeben.