Maticová funkce

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Tento článek pojednává o aplikaci komplexní funkce na matici. Výraz "maticová funkce" se někdy používá pro libovolné zobrazení z nějaké množiny do množiny matic.

Maticová funkce je matematické zobrazení, která zobrazuje matice na matice. Některé komplexní funkce f, nejčastěji se setkáme s funkcemi

\sqrt{z},\quad \sin(z),\quad \cos(z),\quad \exp(z),\quad \log(z)\quad\text{a} \quad \mathrm{sgn}(z):=\frac{\mathrm{Re}(z)}{|\mathrm{Re}(z)|},

je možné rozšířit přirozeným způsobem na maticové funkce. Tento proces se také nazývá funkční kalkulus.

Definice[editovat | editovat zdroj]

Nechť f(z),\,f:\mathbb{C}\rightarrow\mathbb{C} je funkce komplexní proměnné z, a nechť A je čtvercová matice. Pokud je funkce f(z) definovaná a analytická na otevřené množině obsahující spektrum matice matice A, lze funkci zobecnit na f(A),\,f:\mathbb{C}^{n\times n}\rightarrow\mathbb{C}^{n\times n}. Zobecnění lze provést několika různými avšak navzájem ekvivalentními[1] způsoby:

Definice pomocí Jordanova rozkladu[editovat | editovat zdroj]

Uvažujme analytickou funkci

f(z) = \sum_{k=0}^\infty \phi_k z^k,

kde suma na pravé straně je Taylorova řada funkce f(z) v bodě 0 (která je konvergentní). Pak lze funkci zobecnit na čtvercové matice jednoduše jako

f(A)=\sum_{k=0}^\infty \phi_k A^k.

Je-li matice A diagonalizovatelná, existuje regulární matice X tak, že

X^{-1}AX=D=\mathrm{diag}(\lambda_1,\ldots,\lambda_n),

pak

f(A)=\sum_{k=0}^\infty \phi_k (XDX^{-1})^k.

Protože

(XDX^{-1})^2=(XDX^{-1})(XDX^{-1})=XD^2X^{-1}=X\,\mathrm{diag}(\lambda_1^2,\ldots,\lambda_n^2)X^{-1},

pro k=3,4,5,... platí

(XDX^{-1})^k=(XDX^{-1})(XDX^{-1})^{k-1}=(XDX^{-1})(XD^{k-1}X^{-1})=XD^kX^{-1}=X\,\mathrm{diag}(\lambda_1^k,\ldots,\lambda_n^k)X^{-1},

a tedy

f(A)=X\left(\sum_{k=0}^\infty \phi_k\, \mathrm{diag}(\lambda_1^k,\ldots,\lambda_n^k)\right)X^{-1}.

Velká závorka uprostřed je diagonální matice, obsahující na diagonále shora uvedené Taylorovy řady se z=\lambda_1,\ldots,\lambda_n, tj. právě hodnoty f(\lambda_p),\,p=1,\ldots,n. Dostáváme tak vztah definující maticovou funkci diagonalizovatelné matice

f(A)=X\,\mathrm{diag}(f(\lambda_1),\ldots,f(\lambda_n))X^{-1}.

Pokud matice není diagonalizovatelná, můžeme použít Jordanův rozklad a situace je jen nepatrně složitější. Existuje regulární matice X tak, že

X^{-1}AX=J,

kde matice

J=\mathrm{diag}(J_1,\ldots,J_m), \qquad J_p = \left(\begin{array}{ccccc}\lambda_p&1\\&\lambda_p&1\\&&\ddots&\ddots\\&&&\lambda_p&1\\&&&&\lambda_p\end{array}\right)\in\mathbb{C}^{n_p\times n_p},  \quad p=1,\ldots,m,

je blokově diagonální, s Jordanovými bloky na diagonále (zřejmě \sum_{p=1}^m n_p = m). Analogicky jako v předchozím případě dostaneme vztah definující maticovou funkci

f(A)=X\mathrm{diag}(f(J_1),\ldots,f(J_m))X^{-1},

kde

f(J_p) =
\begin{pmatrix}
f(\lambda_p) & f'(\lambda_p) & \cdots & \displaystyle\frac{f^{(n_p-1)}(\lambda_p)}{(n_p-1)!}\\
0 & f(\lambda_p)   & \cdots & \vdots  \\
\vdots   & \ddots   & \ddots & f'(\lambda_p)  \\
0 & \cdots   & 0 & f(\lambda_p)
\end{pmatrix}.

Definice pomocí Cauchyho integrálu[editovat | editovat zdroj]

Nechť je opět f(z),\,z\in\mathbb{C} je analytická na otevřené množině \Omega obsahující spektrum matice A. Nechť dále \Gamma je uzavřená křivka v \Omega oddělující od komplexní roviny nějakou část oblasti analyticity obsahující všechna vlastní čísla. Pak

f(\lambda_p) = \frac{1}{2\pi i} \oint_\Gamma {\frac{f(s)}{s-\lambda_p}}\, \mathrm{d}s ,

a

f(A) = \frac{1}{2\pi i}  \oint_\Gamma {f(s)(sI-A)^{-1}}\, \mathrm{d}s.

Definice pomocí polynomiální interpolace[editovat | editovat zdroj]

Definici pomocí Hermiteova interpolačního polynomu nalezneme například v knize.[1]

Výpočet[editovat | editovat zdroj]

Jordanův rozklad je užitečný nástroj pro porozumění pojmu funkce matice. Definice však, jak to obvykle bývá, není vhodný návod pro praktický výpočet. Nicméně pro velmi malé, školní příklady, lze maticovou funkci spočítat přímo z definice, nejsnáze právě pomocí Jordanova rozkladu. Numericky stabilní výpočet maticových funkcí velkých matic je předmětem intenzivního základního vývoje v oblasti maticových výpočtů.

Výpočet maticové funkce je navíc silně závislý na funkci f a na vlastnostech matice A.

  • Při výpočtu odmocniny z pozitivně definitní matice \sqrt{A} se používají algoritmy založené na Newtonově metodě.
  • Při výpočtu znaménkové funkce \mathrm{sgn}(A) matice, která nemá žádné ryze imaginární vlastní číslo se počítá pomocí algoritmu sign iteration.

V praxi, v mnoha případech není potřeba znát přímo matici f(A), ale stačí znát její akci na konkrétní vektor, tj. f(A)v, nebo dokonce c^Hf(A)b. Často tedy stačí určit vektor délky n, nebo dokonce jen jeden skalár (viz příklad řešení ljapunovské rovnice, případ kdy k\ll n). To je klíčové zejména u rozsáhlých úloh. Matice f(A) může být hustá i když původní matice A je řídká. Pokus o přímé vyčíslení funkce tak může vést na hustou matici, přičemž požadavky na uložení všech n^2 prvků matice (reálných čísel) mohou významně přesahovat paměťové prostředky dostupné na daném počítači. Pro výpočet f(A)v nebo c^Hf(A)b bez vyčíslování matice f(A) se používají speciální postupy a algoritmy.

Příklady aplikací[editovat | editovat zdroj]

Největším zdrojem aplikací jsou maticové výpočty samy o sobě. Mimo to se s maticovými funkcemi často setkáváme v teorii řízení.

Řešení obyčejných diferenciálních rovnic[editovat | editovat zdroj]

Obyčejná homogenní diferenciální rovnice s konstantními koeficienty, anebo systém rovnic s konstantními koeficienty, se dá přepsat na maticovou rovnici

\dot{x}=Ax, \qquad \text{kde} \qquad x=x(t)

je vektor neznámých. Řešení je vektorový prostor generovaný sloupci matice

\exp(At).

Řešení ljapunovské rovnice[editovat | editovat zdroj]

Při rozhodování zda je dynamický systém řiditelný nebo pozorovatelný řešíme tzv. ljapunovské rovnice

AX+XA^H = -BB^H, \qquad A,X\in\mathbb{C}^{n\times n}, \quad B\in\mathbb{C}^{n\times k},

kde matice A je stabilní (tedy \mathrm{Re}(\lambda)<0,\,\lambda\in\mathrm{sp}(A)). Řešení lze formálně zapsat ve tvaru

X = \int_0^\infty \exp(At)BB^H\exp(A^Ht)\mathrm{d}t,

kde se užívá maticová exponenciála.

Podobné problémy vyvstávají při úlohách redukce modelu.

Stabilizace matice[editovat | editovat zdroj]

V předchozí aplikaci byla zmíněna stabilní matice. Pokud matice dynamikého systému není stabilní, což se často stává, je třeba systém stabilizovat, tj. eliminovat vliv vlastních čísel s kladnou reálnou složkou ve zpětnovazební smyčce. To lze formálně realizovat znaménkovou funkcí. Nechť matice A nemá žádné ryze imaginární vlastní číslo. Uvažujme dále, pro jednoduchost, že matice je normální, tj. A=XDX^H. Protože znaménková funkce je v celé komplexní rovině, kromě imaginární osy, analytická, platí

\mathrm{sgn}(A)=X\,\mathrm{diag}(\mathrm{sgn}(\mathrm{Re}(\lambda_1)),\ldots,\mathrm{sgn}(\mathrm{Re}(\lambda_n)))X^H.

Tedy matice

P_{-}= \frac12(I-\mathrm{sgn}(A)), \qquad P_{+}=\frac12(I+\mathrm{sgn}(A))

jsou ortogonální projektory na podprostory generované vlastními vektory matice A odpovídajícími vlastním číslům se zápornou, resp. kladnou reálnou složkou.

Je-li A nenormální, pak P_{-},\,P_{+} jsou šikmé projektory. Protože znaménková funkce má v celé komplexní rovině, kromě imaginární osy, nulové derivace, defektní matice (tj. s netriviálními Jordanovými bloky) nepřináší oproti diagonalizovatelným nenormálním maticím, alespoň v teorii, žádné komplikace navíc, jako tomu je u obecné funkce f.


Příklad výpočtu[editovat | editovat zdroj]

Nechť f(z)=\exp(z), a nechť

A=
\begin{pmatrix} 3 & 0 & -1\\1 & 2 & -1 \\ 1 & 0 & 1\\\end{pmatrix}=
\begin{pmatrix}1 & 0 & 0\\1 & 0 & 1 \\1 & -1 & 0\\\end{pmatrix}
\begin{pmatrix}2 & 1 & 0\\0 & 2 & 0 \\0 & 0 & 2\\\end{pmatrix}
\begin{pmatrix}1 & 0 & 0\\1 & 0 & 1 \\1 & -1 & 0\\\end{pmatrix}^{-1}

je zadaná matice a její Jordanův rozklad. Exponenciála této matice je

\exp(A)=
\begin{pmatrix}1 & 0 & 0\\1 & 0 & 1 \\1 & -1 & 0\\\end{pmatrix}
\begin{pmatrix}e^2 & e^2 & 0\\0 & e^2 & 0 \\0 & 0 & e^2\\\end{pmatrix}
\begin{pmatrix}1 & 0 & 0\\1 & 0 & -1 \\-1 & 1 & 0\\\end{pmatrix}=
\begin{pmatrix}2e^2 & 0 & -e^2\\e^2 & e^2 & -e^2 \\e^2 & 0 & 0\\\end{pmatrix}.

Nechť f(z)=\sin(z), a nechť

A=
\begin{pmatrix} \frac{\pi}{6} +2 & 4 \\ -1 & \frac{\pi}{6} -2 \end{pmatrix} = 
\begin{pmatrix}  2 & 1 \\ -1 & 0 \end{pmatrix} 
\begin{pmatrix} \frac{\pi}{6} & 1 \\ 0 & \frac{\pi}{6} \end{pmatrix} 
\begin{pmatrix}  2 & 1 \\ -1 & 0 \end{pmatrix}^{-1},

je zadaná matice a její Jordanův rozklad. Sinus této matice je

\sin(A)=
\begin{pmatrix}  2 & 1 \\ -1 & 0 \end{pmatrix} 
\sin \begin{pmatrix} \frac{\pi}{6} & 1 \\ 0 & \frac{\pi}{6} \end{pmatrix} 
\begin{pmatrix}  0 & -1 \\ 1 & 2 \end{pmatrix} =
\begin{pmatrix}  2 & 1 \\ -1 & 0 \end{pmatrix} 
\begin{pmatrix}\sin \frac{\pi}{6} & \cos \frac{\pi}{6} \\ 0 &\sin \frac{\pi}{6} \end{pmatrix}
\begin{pmatrix}  0 & -1 \\ 1 & 2 \end{pmatrix} =
\begin{pmatrix}  \frac{1}{2}+\sqrt{3} & 2\sqrt{3} \\ -\frac{1}{2}\sqrt{3} & \frac{1}{2}-\sqrt{3} \end{pmatrix}.

Reference[editovat | editovat zdroj]

  1. a b Nicholas J. Higham, Function of Matrices. Theory and Computation, SIAM Publications, Philadelphia, PA, 2008

Literatura[editovat | editovat zdroj]

  • J. Duintjer Tebbens, I. Hnětynková, M. Plešinger, Z. Strakoš, P. Tichý: Analýza metod pro maticové výpočty, základní metody. Matfyzpress 2012. ISBN 978-80-7378-201-6. (Kapitola 2.4, Funkce matic, str. 47-49.)
  • G. H. Golub, C. F. Van Loan: Matrix Computations, Third Edition. The Johns Hopkins University Press, Baltimore a Londýn 1992. ISBN 0-8018-5414-8. (Kapitola 11, Functions of Matrices, str. 555-578.)

Související články[editovat | editovat zdroj]