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