Eine bessere Beschreibung der Mathematik in tkmatrix befindet sich als PDF oder PS Datei mathe1.ps mit in der Distribution des Programms. Html Vesion hat keinen guten Zeichensatz (Es is eben nicht möglich in html) und hat ein paar Fehler, die in der Latex Vesion korrigiert wurden.
Das ist eine Zusammenfassung meiner Vorlesungsunterlagen aus Mathe I. Es werden alle Algorithmen grob beschreiben, ohne jegliche Beweise. Es geht vor allem darum zu beschreiben wie die Algorithmen funktionieren und welche mathematische Probleme man mit ihnen lösen kann. Diese Beschreibung kann aber ein gutes Skript oder ein Mathebuch nicht ersetzen. Die Reihenfolge entspricht eher der Gliederung der Algorithmen als der beim wirklichen Vorlesung.
Def:
Def.:
eine m× n Matrix (m mal n): m-Zeilenzahl;
n-Spaltenzahl
a11 | a12 | a13 | ... | a1n |
a21 | a22 | a23 | ... | a2n |
: | : | : | : | : |
am1 | am2 | am2 | ... | amn |
Alle Matrizen werden hier ohne Klammer geschrieben. Auch Vektoren werden in der html Version ohne den gewöhnten Pfeil geschrieben. (also "a" kann auch bedeuten "a-Vektor"). Es soll es den Kontext ersichtlich sein um welche Bedeutung es sich gerade handelt.
Def.: c=cij ist in Treppenform, falls c die
Nullmatrix ist, oder es eine Folge
1<= j1 < j2 < ... < jr <= l
von r Sprungstellen gibt mit
Def.: Eine Matrix ist in Treppennormalform c=(cij) wenn sie in Treppenform ist und wenn zusätzlich
Benutzt um Lösung LOESUNG des linearen Gleichungsystem LGS zu finden. k-Spaltenzahl. Bringt die Matrix auf Treppenform TREPPENFORM
Bemerkung:
cij1 bedeutet: i.te Zeile j.te
Spalte 1. Algorithmus Durchgang
Es gibt viele Möglichkeiten eine Matrix auf Treppenform zu bringen (Treppenform ist nicht eindeutig). Man kann, um sich die Rechnungen zu erleichtern, auch Zeilen wechseln oder Zeilen mit verschiedene Faktoren multiplizieren. Für den Rechner ist das aber keine Erleichterung. Der Algorithmus in dieser Form ändern nicht die Determinante DETERMINANTE von Matrix.
Benutzt um Lösung LOESUNG des linearen Gleichungsystem LGS zu finden. Weiterentwicklung von Gauss Algorithmus GAUSS . Bringt die Matrix auf Treppennormallform TREPPENNORMALFORM . k-Spaltenzahl
Def.: Ein lineares Gleichungssystem mit n Gleichungen hat
die Form
a11*x1 + a12*x2 + a13*x3 + ... + a1n*xn | = | b1 |
a21*x1 + a22*x2 + a23*x3 + ... + a2n*xn | = | b2 |
a31*x1 + a32*x2 + a33*x3 + ... + a3n*xn | = | b3 |
: | = | : |
an1*x1 + an2*x2 + an3*x3 + ... + ann*xn | = | bn |
2.Die Matrix der Form
a11 | a12 | ... | a1n | b1 |
a21 | a22 | ... | a2n | b2 |
: | : | : | : | |
an1 | an2 | an3 | ann | bn |
Man kann mit Hilfe der elementaren Umformungen (sie ändern nicht die Lösungsmenge) die Matrix in die Form bringen, in dem die Lösung des Gleichungssystem ersichtlich (leicht zu berechnen) ist. Gauss und Gauss-Jordan Algorithmus benutzen nur solche Umformungen. Zu solchen Umformungen gehören:
Es gibt drei möglichen Lösungstypen von Linearen Gleichungssystemen (LGS)
x1 |
x2 |
: |
xn-1 |
Bezogen auf Programm Matrix
) (n*k k< n) zusammengesetzt
aus mehreren Spaltenvektoren, wobei das erste eine Lösung des LGS
ist und die anderen die Basis des linearen Unterraums für das
Lösung des zugehörigen homogenen Gleichungssystems. Jede mögliche
Lösung des LGS kann man erreichen aus
Algorithmus:
1 | 5 | 0 | 0 | 0 | 2 |
0 | 0 | 1 | 2 | 0 | 4 |
0 | 0 | 0 | 0 | 1 | 5 |
2 |
0 |
4 |
0 |
5 |
1 | 5 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 2 | 0 | 0 |
0 | 0 | 0 | 0 | 1 | 0 |
1*x1 + 5*1 + 0*x3 + 0*x3 + 0*x4 | = | 0 |
0*x1 + 0*x2 + 1*x3 + 2*0 + 0*x4 | = | 0 |
0*x1 + 0*x2 + 0*x3 + 0*x3 + 0*x4 | = | 0 |
-5 |
0 |
0 |
0 |
0 |
0 |
-2 |
0 |
0 |
0 |
2 | -5 | 0 |
0 | 0 | -2 |
4 | 0 | 0 |
0 | 0 | 0 |
5 | 0 | 0 |
x1 | = | 2-5*a |
x2 | = | -2*b |
x3 | = | 4 |
x4 | = | 0 |
x5 | = | 5 |
Sei A eine m× n Matrix, sei definiert die
Abbildung Æ
Kn -> Km
Kn - lineares Unterraum von Dimension n
x -> A*x = Æ A(x)
x1 |
x2 |
: |
xn |
Def.: Die Menge { Æ A(x) | x Element Kn } heißt Bild von Æ A. Sie ist Teilmenge von Kn und ein linearer Unterraum von Kn .
Das Finden von Bild von A BILD
Def.: Die Menge { x Element Kn | Æ A(x)=0 } heißt Kern von Æ A. Sie ist Teilmenge von Kn und ein linearer Unterraum von Kn .
Das Finden von Kern von A KERN
Satz: Sei
Æ A Kn -> Km (A eine m× n Matrix)
(A eine m× n Matrix)
Dann gilt: dim Kern Æ A + dim Bild Æ A = n
Man muß die Basis des auf den Spalten Vektoren aufgespannten
linearen Unterraums finden. Am einfachsten geht man vor, wenn man
die Matrix auf Treppenform
LGS
bringt und alle
Spaltenvektoren aus Ursprungsmatrix zur Lösung nimmt, die
Sprungstellen haben.
z.B.
0 | 1 | 2 |
1 | 2 | 3 |
0 | 1 | 2 |
2 | 3 | 4 |
0 | 1 | 2 |
1 | 0 | 1 |
0 | 1 | 2 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 1 |
1 | 2 |
0 | 1 |
2 | 3 |
0 | 1 |
Kern Æ A ist die Lösung der Abbildung Æ A(x)=0
Der Nullvektor gehört immer zur Lösung
also z.B. der Kern von
1 | 2 | 3 |
2 | 1 | 0 |
2 | 4 | 6 |
x1+2*x2+3*x3 | = | 0 |
2*x1+1*x2 | = | 0 |
2*x1+4*x2+6*x3 | = | 0 |
1 | 2 | 3 | 0 |
2 | 1 | 0 | 0 |
2 | 4 | 6 | 0 |
1 | 0 | 13 | 0 |
0 | 1 | 113 | 0 |
0 | 0 | 0 | 0 |
-13 |
-113 |
0 |
Ein LGS kann man als lineare Abbildung betrachten
a11*x1 + a12*x2 + a13*x3 + ... + a1n*xn | = | b1 |
a21*x1 + a22*x2 + a23*x3 + ... + a2n*xn | = | b2 |
a31*x1 + a32*x2 + a33*x3 + ... + a3n*xn | = | b3 |
: | = | : |
an1*x1 + an2*x2 + an3*x3 + ... + ann*xn | = | bn |
betrachte A: Æ A(x)=A*x : Kn -> Km dann Æ A(x) = b
Dann gilt:
Sei A eine m× n Matrix
sei B eine n*t Matrix
A=
a11 | ... | a1n |
: | : | : |
am1 | ... | amn |
b11 | ... | b1t |
: | : | : |
bn1 | ... | ant |
c11 | ... | c1t |
: | : | : |
cm1 | ... | cmt |
Sei A eine m× n Matrix
sei B eine m× n Matrix
A=
a11 | ... | a1n |
: | : | : |
am1 | ... | amn |
b11 | ... | b1n |
: | : | : |
bm1 | ... | amn |
c11 | ... | c1n |
: | : | : |
cm1 | ... | cmn |
Sei A eine m× n Matrix
sei B eine m× n Matrix
A=
a11 | ... | a1n |
: | : | : |
am1 | ... | amn |
b11 | ... | b1n |
: | : | : |
bm1 | ... | amn |
c11 | ... | c1n |
: | : | : |
cm1 | ... | cmn |
Def.: linearer Unterrau
Eine Teilmenge U von Kn heißt linearer Unterraum wenn gilt,
Es gibt nur eine Inverse von n× n Matrizen
A-1 ist Eine Inverse von A wenn gilt A-1 * A=In
wobei In ist eine Einheitsmatrix wie folgt
In=
1 | 0 | 0 | 0 |
0 | 1 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 0 | 0 | 1 |
In ist ein neutrales Element bezüglich
Multiplikation
MULTIPLIKATION
Matrix A heißt dann inventierbar
Man findet eine Inverse, indem man zur gegebenen Matrix eine
Einheitsmatrix dazu fügt und anschließend mit Gauss-Jordan
JORDAN
behandelt z.B
zur Matrix
5 | 10 | 20 |
1 | 1 | 1 |
12 | 12 | 20 |
5 | 10 | 20 | 1 | 0 | 0 |
1 | 1 | 1 | 0 | 1 | 0 |
12 | 12 | 20 | 0 | 0 | 1 |
1 | 0 | 0 | -15 | -1 | 14 |
0 | 1 | 0 | 15 | 72 | -3 8 |
0 | 0 | 1 | 0 | -32 | 18 |
-15 | -1 | 14 |
15 | 72 | -38 |
0 | -32 | 18 |
Die Determinante ist nur auf n× n Matrizen definiert. Im Programm kann auch eine Determinante aus n× (n+1) Matrix ausgerechnet werden. Die letzte Spalte wird einfach ignoriert. Es soll noch Leute geben, die mit Hilfe der Determinanten LGS LGS lösen. Ohne hier drauf genauer anzugehen muß man sagen Determinanten sind OUT.
Es gibt grundsätzlich zwei Methoden um eine Determinante auszurechnen
Problem: Suche die beste (optimale) Lösung eines
Ungleicheungssystem bezüglich einer zu maximierenden Funktion
G(
a11*x1 + a12*x2 + a13*x3 + ... + a1n*xn | >= | b1 |
a21*x1 + a22*x2 + a23*x3 + ... + a2n*xn | >= | b2 |
a31*x1 + a32*x2 + a33*x3 + ... + a3n*xn | >= | b3 |
: | : | : |
am1*x1 + am2*x2 + am3*x3 + ... + amn*xn | >= | bm |
a11 | a12 | a13 | ... | a1n | b1 |
a21 | a22 | a23 | ... | a2n | b2 |
: | : | : | : | : | b3 |
am1 | am2 | am2 | ... | amn | bm |
g1 | g2 | g3 | ... | gn | G |
Allgemein:
A | b |
g | G |
a11 | a12 | a13 | ... | a1n | k1 |
a21 | a22 | a23 | ... | a2n | k2 |
: | : | : | : | : | k3 |
am1 | am2 | am2 | ... | amn | km |
g1 | g2 | g3 | ... | gn | G |
Wir haben l verschiedene Spalten verarbeitet und daher l
verschiedene Zeilen erhalten, die jetzt Standartbasis Vektoren
sind (0,... ,1,... ,0) mit n+1 Koordinaten
und mit "1" an einer der ersten n-Stellen. Es seien i1,... ,il diese Zeilenindizies. Wir
setzen zusätzlich voraus, daß die Gewinnzeile g(l) von B(l) nur
negative Einträge erhält
gi(l)>= 0
Wenn nicht dann fahre fort mit Schritt 8
Dann gibt es eine optimale Lösung(en) auf Ax>= b
diese erhält man folgendermaßen. Man nehme die Zeile i1... il von A und b der Ausgangsmatirx und betrachtet
(^A) *
Spaltenpivotierung an der Stelle ij
b11 | b12 | b13 | ... | b1n |
b21 | b22 | b23 | ... | b2n |
: | : | : | : | : |
bm1 | bm2 | bm2 | ... | bmn |
Ein Teil von Simplex Algorithmus
a1j |
a2j |
: |
anj |
gj |
Wenn R nicht leer ist, dann wähle i Element Reell aus, so daß
ki | aij| <= kl | aij|
für alle l Element R
( Wenn mehrere i dann nimmt das kleinste )
0... 1... 0 i-te Zeile 1 in der j-ten Spalte
-1 |
-1 |
: |
-1 |
x1 |
x2 |
: |
xn |
xn+1 |
dann ist
u =
0 |
0 |
: |
-w |
v1 |
v2 |
: |
vn+1 |
v1 |
v2 |
: |
vn |
Sei A eine m× n Matrix und b Element Rm dann gilt für das
Gleichungssystem
(At * A) * x = At * b
At ist eine Trasponente von A
ist immer lösbar und die Lösungen sind die besten Lösungen von A * x = b
"beste Lösung" Das heißt wenn u diese Lösung ist dann für alle v
| A*u-b| < | Av - b|
also ist | A*u-b| minimal.
| a| ist die Länge von a und ist
definiert als
| a| = (a1+a2+... +an)^½
Die Transponente von A m× n Matrix ist eine At n× m Matrix, wo die Spalten von At die Zeilen von A sind.
Matrixspiele lassen sich mit Hilfe von Simplexverfahren lösen. D.h zu jedem Matrixspiel, bei dem kein Sattelpunkt existiert, läßt sich mit Hilfe von Simplexverfahren eine optimale gemischte Strategie finden. Auch jedes Optiemirungsproblem hat eine Entsprechung als Matrixspiel (Duealitätsatz). Im Program wurde das Verfahren aus dem Buch (Georg Schrage, Rüdeger Baumann, "Strategiespiele; Computerorientierte Einfürung in Algorithmen der Spieltheorie", R. Oldenbourg Verlag, München Wien 1984) benutzt.
Dazugehörige Simpexverfahren ist unterschiedlich zu dem übrigen im Program benutzten Verfahren. Zu den übrigen Erläuterungen verweise ich auf das obige Buch.
Das Programm berechnet den Wert des Spieles und die optimale Strategien für beide Spieler. Ergebnismatrix wird die optimale Strategie des ersten Spielers.