3.4.7 Anwendung: Matrixfunktionen

Sei

$\displaystyle A = X \Lambda X^{-1}.
$

Dann ist

$\displaystyle A^2 = X \Lambda X^{-1}X \Lambda X^{-1} = X \Lambda^2 X^{-1}
$

und allgemeiner

$\displaystyle A^k = X \Lambda^k X^{-1}$   $\displaystyle .
$

Sei $ p$ ein Polynom. Dann ist

$\displaystyle p(A) = X p(\Lambda) X^{-1}
= X
\left[
\begin{array}{ccc}
\lambda_1 && \\
& \ddots & \\
&& \lambda_n
\end{array}\right]
X^{-1}.
$

Allgemeiner kann man für eine Funktion $ f$ schreiben:

$\displaystyle f(A) = X f(\Lambda) X^{-1}
=X
\left[
\begin{array}{ccc}
f(\lambda_1) && \\
& \ddots & \\
&& f(\lambda_n)
\end{array}\right]
X^{-1}.
$

Die einzige Einschränkung an die Funktion $ f$ ist, dass sie an allen Stellen $ \lambda_i$ definiert ist.

Im Prinzip könnte man zu allen in Tabelle 3.3 aufgelisteten skalaren Funktionen eine entsprechende Matrixfunktion definieren (Algorithmus von Parlett basierend auf der Schurzerlegung [7, p.384]). Dies wurde in MATLAB ausser für den Logarithmus, die Exponential- und Wurzelfunktion nicht gemacht. Funktionen wie exp, log, cos, sin, cosh, sinh können mit durch funm(a,@sin), etc. aufgerufen werden. funm kann auch für eigene Funktionen gebraucht werden: funm(a,@my_fun).

 
     >> a=[1 2 ;3 4]
     a =
          1     2
          3     4
     >> s=funm(a,@sin)
     s =
        -0.4656   -0.1484
        -0.2226   -0.6882
     >> c=funm(a,@cos)
     c =
         0.8554   -0.1109
        -0.1663    0.6891
     >> norm(s^2 + c^2 - eye(size(a)))
     ans =
        6.9184e-16
     >>

Die Eigenwertzerlegung in der angegebenen Form, d.h. mit diagonalem $ \Lambda$ existiert nicht immer. Für weitere Informationen siehe die Schurzerlegung: help schur.



Peter Arbenz 2008-09-24