Full text

(1)

Serie 4

Martina Musterfrau, Max Mustermann 2. April 2013

Inhaltsverzeichnis

1 Theorie 1

2 Algorithmus 2

3 Implementierung 3

3.1 Main.java . . . 3

3.2 statischeMethoden.java . . . 3

3.2.1 determinante . . . 3

3.2.2 inverse . . . 3

4 Beispiele/Experimente 4

(2)

Ziel der Aufgabe war es, eine vom Nutzer eingegebene 2×2-Matrix zu invertieren. Hierbei sollten Fehler abgefangen werden und die Ausgabe in der Konsole erfolgen.

1 Theorie

Satz 1.1 Es sei K ein K¨orper und M sei eine n×n-Matrix mit Eintr¨agen aus dem K¨orperK. Dann gilt: M ist genau dann invertierbar, wenn eine der folgenden ¨aquivalenten Bedingungen erf¨ullt ist:

• Es gibt eine Matrix N mit M·N =En=N ·M, wobei

En:= diag(1, . . . ,1

| {z }

n-mal

) =

1 0 · · · 0

0 . .. ... ...

... . .. ... 0

0 · · · 0 1

• Die Determinante vonM ist ungleich0.(Bemerkung: Auf die Definition der Determinanten wird an dieser Stelle verzichtet.)

Man bezeichnet die Inverse einer Matrix M mit M−1.

Zur Berechnung der Inversen nutzen wir hier die Hilfe der Adjunkten Matrix und nicht den Gauß-Jordan-Algorithmus. Diese Methode ist zwar im Allge- meinen, d.h. f¨ur hohe Dimensionen der Matrix, zu umfangreich, um effizient eingesetzt werden zu k¨onnen, hier liegt uns allerdings nur eine 2×2-Matrizen vor, f¨ur welche dies nicht gilt.

Dabei ist die Adjunkte adj(M) einer Matrix M wie folgt definiert:

adj(M) =

me11 me12 · · · me1n

me21 . .. . .. ... ... . .. . ..

me(n−1)n

men1 · · · men(n−1) menn

T

mit

meij := (−1)i+j·Mij

(3)

und den Minoren Mij

Mij :=

m11 · · · m1(j−1) m1(j+1) · · ·m1n

... . .. ... ... . .. ...

mi−11 · · · m(i−1)(j−1) m(i−1)(j+1) · · · m(i−1)n

mi+11 · · · m(i+1)(j−1) m(i+1)(j+1) · · · m(i+1)n

... . .. ... ... . .. ...

mn1 · · · mn(j−1) mn(j+1) · · ·mnn

,

welche entstehen, wenn man die Determinante der Matrix berechnet, die aus der MatrixM entsteht, wenn man diei-te Zeile undj-te Spalte streicht.

Mit Hilfe der Adjunkten berechnet sich die Inverse einer Matrix folgender- maßen:

M−1 = 1

det(M) ·adj(M) Speziell im Fall einer 2×2-Matrix M der Form

M = a b

c d

heißt das

M−1 = 1 det(M)

d −b

−c a

(1) mit

det(M) = |M|=ad−bc, (2)

da die Minoren Mij hier nur die entsprechend modifizierten (sprich: mit (−1)i+j multiplizierten) Eintr¨age sind. (Die Determinante einer 1×1-Matrix, d.h. einer reellen Zahl, ist die Zahl selbst.)

2 Algorithmus

(Bemerkung: In diesem Abschnitt werden normalerweise Besonderheiten des Algorithmus bei der Implementierung beschrieben.

Beispiel: Fl¨achenberechnung eines Dreiecks mittels a*b/2 und nicht (1/2)*a*b anderes Beispiel: wie werden Gleichungsysteme gel¨ost? Mittels Inversenbe- rechnung oder L¨osen eines Gleichungssystems?

(4)

3 Implementierung

Zu diesem Zweck wurden drei java-Files erstellt:

a) Main.java:

unsere main-Methode, b) statischeMethoden.java:

mit Hilfe der Methoden aus dieser Klasse wird eine 2×2-Matrix inver- tiert oder deren Determinante berechnet

c) InvertierException.java:

Klasse, in welcher wir uns das Objekt/ den Fehler InvertierException konstruieren. Dieses Objekt bedarf keiner Erlaeuterung.

3.1 Main.java

Hierin wird die Kommunikation mit dem Nutzer ¨ubernommen, d.h. Ein- und Ausgabe der Daten, Abfangen der Fehler (siehe 1.1) sowie die ¨Ubergabe derer an die Untermethoden.

3.2 statischeMethoden.java

Wie oben beschrieben, befinden sich in dieser Klasse zwei Methoden, die wir im Folgenden beschreiben:

3.2.1 determinante

public static doubledeterminante(double[][] matrix)

Diese Methoden berechnet, wie es der Name verr¨at, die Determinante der Matrix, die als double[][]-Array ’matrix’ vorliegt, sofern diese eine 2 × 2- Matrix ist und gibt sie zur¨uck. Wir nutzen dabei zur Berechnung die Formel aus (2).

3.2.2 inverse

public static double[][]inverse( double[][] matrix)

Hierin wird die Inverse der Matrix ’matrix’ mittels der Adjunkten und der Determinante mittels (1) und (2) berechnet und zur¨uckgegeben.

(5)

4 Beispiele/Experimente

Geben wir nun die invertierbare Matrix

2 4 5 6

ein, so erhalten wir als Aus- gabe:

Die eingegebene Matrix ist:

2 4

5 6

Die Inverse ihrer Matrix ist:

-0.7500000000000000 0.5000000000000000 0.6250000000000000 -0.2500000000000000

Diese entspricht der exakten Inversen. Betrachten wir den Fall einer nicht invertierbaren Matrix:

Die eingegebene Matrix ist:

0 1

0 1

Die eingebene Matrix ist nicht invertierbar

Wie man sieht, funktioniert das Programm hier einwandfrei.

Figure

Updating...

References

Related subjects :