Das ist PROTOKOLL 03: protla203.htm (in http://www.univie.ac.at/NuHAG/FEICOURS/ws0304), vlg. PROT01.
INHALT: vorerst Abbildung A: x >> A*x , mit der Matrix A = [ 1 , 2 ; 3, 4]; Die Bilder der Einheitsvektoren sind also "mitten" im 1.Quadranten; der erste Quadrant wird auf einen Kegel abgebildet, der den relativ schlanken Winkel von 8.1301 Grad einschliesst.
Das beiliegende Bild zeigt, wohin gewisse Punkte aus dem Einheitskreis abgebildet werden (sie wurden bewusst unregelmaessig gewaehlt, damit man besser erkennen kann, welche Punkte wohin abgebildet werden). Die schwarzen Punkte werden auf die gruenen Punkte abgebildet.
Der erste Eindruck ist offenbar, dass das Bild des Einheitskreises eine Ellipse ist, aber welche?
Nebeninformationen: det(A) = -2 , B = inv(A): = [ -2, 1 , 1,5, -0.5] ;
Die Punkte der Ellipse y sind also dadurch charakterisiert, dass B(y) ein Kreis ist, als gilt || B(y) ||^2 = < B*y, B*y> = 1, oder aequivalent <y, B'*B*y> = 1, wobei B'*B die Gram-Matrix ist: G = [ 6.25 -2.75; -2.75 1.25 ] gilt. Die Gram-Matrix G ist aber auch das Quadrat einer symmetrischen Matrix (die "positive Wurzel", die sich am einfachsten durch Diagonalisierung realisieren laesst).
[V,D] = eig(G) : V = Basis von Eigenvektoren, D
= zugehoerige Diagonalmatrix
V =
-0.4046 -0.9145
-0.9145 0.4046
D = [0.0335 0 ; 0 7.4665];
ds = sqrt(diag(D))'
ds = 0.1830 2.7325
sind die Eigenwerte dieser Wurzel ds(2)/ds(1) = 14.9330 (= cond(A) = Konditionszahl).
Die Richtungsvektoren V sind die Hauptachsen der Ellipse, und die Werte ds(2) bzw. ds(1) sind ihre Laengen!!!
Weiterer Schritt: Da die Eigenvektoren (zu einem Eigenwert s ) genau die nicht-trivialen Loesungen des Gleichungssystems (A-sI) sind, ist eine solche Matrix genau dann singulaer (bzw. nicht invertierbar) wenn det(A-sI) = 0 ist, fuer diesen speziellen Wert von s. Angesichts der Bedeutung dieses Zusammenhanges macht man mehrere Definitionen.
DEF (charakteristische Polynom einer Matrix): Das charakteristische Polynom einer Matrix ist die Funktion s >> det(A-sI) . Wie man sich leicht ueberlegen kann, ist das char.Pol. einer nxn-Matrix ein Polynom vom Grade n, dessen Nullstellen genau die Eigenwerte von A sind. Wir wissen daraus auch sofort, dass fuer ungerades n jedenfalls ein! reeller Eigenwert existiert (Zwischenwertsatz!) bz\w. dass, nach Vielfachheiten gerechnet (man spricht von algebraischer Vielfachheit eines Eigenwertes der Matrix A) im Komplexen genau n verschiedene Eigenwerte existieren. Die Dimension des zugehörigen Eigenraumes (d.h. des Nullraumes von A-sI ) wird die geometrische Vielfachheit von s genannt.
MATLAB: poly(A) liefert die Koeffizienten des char. Polynoms (da diese Polynom im Falle ganzzahliger Matrizen natuerlich selbst ganzzahlig ist, ist es angebracht, in diesem Fall den "round" Befehl mitzuverwenden ( um 1 statt 1.0000 zu bekommen). Ausserdem sei daran erinnert, dass nach MATLAB-Konvention der fuehrende Koeffizient VORNE steht (und der Einfachheit halber auf 1 normiert wird).
>> poly([1,2;3,4]),
ans = 1.0000 -5.0000 -2.0000
>> round(poly([1,2;3,4])),
ans = 1 -5 -2
oder (fuer spaeter)
>> poly([1,2;2,1])
ans = 1 -2 -3
Bemerkung: es ist interessant anzumerken, dass man fuer jedes vorgegeben Polynom p(x) vom Grad n auch eine (sogar viele) nxn Matrizen finden kann, sodass deren charakteristisches Polynom gerade das vorgegebene ist:
Def.: Begleitmatrix zum (gerade bestimmten) Polynom (zu A)
x^2 - 5 x - 2 ist compan([1 -2 -3]), und zwar
2 3
1 0.
Um ein deutlicheres Beispiel zu bekommen versuchen wir:
>> C1 = compan([1,4,-5,6,-7])
ans =
-4 5 -6 7
1 0 0 0
0 1 0 0
0 0 1 0
Das allgemeine Rezept ergibt sich daraus klar: Hat man ein fuehrendes Polynom (dessen fuhrender Term = 1 sein muss, sonst macht MATLAB diesen Normierungsschritt selber, wie z.B.
> compan([2,4,-5,6,-7])
ans =
-2.0000 2.5000 -3.0000 3.5000
1.0000 0
0 0
0 1.0000
0 0
0
0 1.0000
0
entsteht dadurch, dass man in der ersten unteren Nebendiagonale lauter Einser schreibt, und dann in der ersten Zeile das Negative der n-1 Koeffizienten (ausser dem fuehrenden) anschreibt.
poly(C1)
1.0000 4.0000 -5.0000 6.0000 -7.0000
zeigt (an dem Beispiel), dass das char Polynom tatsaechlich genau das vorgegebene Polynom (mit normiertem ersten Koeffizienten) ist. Es ist klar, wie der allgemeine Fall (durch Multiplikation der Matrix mit einem passenden Skalar!) erledigt wird, allerdings aendert dieser Schritt an den Nullstellen und deren Vielfachheiten nichts mehr.
Aufgabe: Man zeige allgemein (Induktion) dass das char. Polynom der Begleitmatrix zu einem vorgegebenen (normierten) Polynom genau dasvorgegebene Polynom ist!
BEOBACHTUNG: die soeben angefuehrte Verbindung zeigt, dass das Bestimmen von Eigenwerten von allg. n x n - Matrizen gleichwertig zum Auffinden von Nullstellen von bel. komplexen Polynomen vom Grad n ist (d.h. hat man einen konstruktiven Algorithmus fuer das Eine, so ist er auch f.d. Andere verwendbar). In MATLAB duerfte (meiner Beobachtung nach) die Eigenwert-Routine (diese kann ja nutzen, dass man bei einem Basis-Wechsel die Eigenwerte unveraendert laesst!) benutzt werden, um Nullstellen zu bestimmen.
c = rand(1,3)
c =
0.79193160467905 0.81639725753558 0.39531625734812
>> roots(c)
ans =
-0.51544682186693 + 0.48321255202186i
-0.51544682186693 - 0.48321255202186i
>> eig(compan(c))
ans =
-0.51544682186693 + 0.48321255202186i
-0.51544682186693 - 0.48321255202186i
Ein anderes Beispiel:
Nutzung des Spektral-Kalkuels: Nehmen wir die Matrix A = [ 1 , 2; 2, 1]; mit char. Polynom x^2 - 2 x - 3, und dementsprechend (ganzzahligen) Nullstellen -1 und 3 [ p(x) = (x-3) (x+1), leicht zu erraten, weil das Produkt der beiden Wurzeln muss -3 sein, und ihre Summe +2]. Wir suchen nun ein Polynom, das an diesen Stellen die Werte -1 = 1/-1 und 1/3 hat. Dazu genuegt ein lineares Polynom, mit Steigung (1/3 - (-1)) = 4/3 geteilt durch die Distanz der Punkte -1 und 3, also 4, d.h. mit Steigung 1/3. Wenn es an der Stelle -1 den Wert ---1 hat, dann muss es an der Stelle Null den Wert -1 + 1/3 = -2/3 haben, also leistet die Gerade q(x) = -2/3 + x/3 das Gewuenschte. In MATLAB Terminology hat q die Koeffizienten cq = (1/3)* [1, -2];
WENDET man nun diese Polynom auf die urspruenglche Matrix an, so bekommt man die INVERSE der Matrix!!!
>> polyvalm(cq, [1,2;2,1])
ans =
-0.33333333333333 0.66666666666667
0.66666666666667 -0.33333333333333
>> inv(H)
ans =
-0.33333333333333 0.66666666666667
0.66666666666667 -0.33333333333333
Das Bemerkenswerte an diesem Resultat ist das Faktum, dass man die EXISTENZ von Eigenwerten benutzt, um zu zeigen, dass dieses Rezept allgemein funktioniert, OHNE diese konkrete kennen zu muessen.
Die ALLGEMEINE Aussage lautet also:
Hat man irgendein Polynom, mit der Eigenschaft dass q(s) = 1/s fuer jeden der Eigenwerte einer Matrix A (bzw. an allen Nullstellen ihres char. Polynoms), so ist q(A) stets die Inverse von A (wenn es ein solches Polynom gibt, dann ist die Matrix auch invertierbar und umgekehrt).
Eine analoge Aussage kann man fuer die Wurzel, oder die Inverse der Wurzel bekommen...
Um schneller rechnen zu koennen (und auch um groessere Beispiele entsprechend vorbereiten zu koennen), erinnern wir uns daran, dass die Vandermonde-Matrix den Uebergang von (unbekannten) Koeffizienten zu den Werten eines Polynoms an vorgegebenen Stellen (input von "vander") liefern. Suchen wir als eine Wurzel aus der Matrix A = [1,2; 2,1] so koennen wir etweder den "direkten" Befehl SQRTM(A) aufrufen (klein-geschrieben, wenn man es wirklich probiert) oder mittels inv(vander([-1,3])) * [i, sqrt(3)] bestimmen:
INSGESAMT also:
H = [ 1,2; 2,1] ;
>> csq = inv(vander([-1,3])) * [i, sqrt(3)]'
csq =
0.4330 + 0.2500i
0.4330 - 0.7500i
>> Hsq = polyvalm(csq,H)
liefert : Hsq =
0.8660 - 0.5000i 0.8660 + 0.5000i
0.8660 + 0.5000i 0.8660 - 0.5000i
Probe: >> Hsq * Hsq
1.0000 2.0000
2.0000 1.0000
Klar dass es eine Matrix mit "positiven Wurzeln gibt" wenn all Eigenwerte positiv sind (und nur dann). In einem solchen Fall ist natuerlich auch die Wurzel wieder eine reelle Matrix...
Eine weiter bemerkenswerte Identitaet ist die Gleichung polyvalm(poly(H),H) == zeros(n,n).
STAND: 8.November.2003 . FORTSETZUNG PROTLA204.htm . (gibt es noch nicht), Vorläufer: PROTLA201.htm.
ZURUECK zur Uebersichtsseite: http://www.univie.ac.at/NuHAG/FEICOURS/WS0304/ws0304.htm