Maticová funkce

Z testwiki
Verze z 17. 10. 2024, 14:16, kterou vytvořil imported>Petr Vojtěch (growthexperiments-addlink-summary-summary:3|0|0)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaci Skočit na vyhledávání

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

z,sin(z),cos(z),exp(z),log(z)asgn(z):=Re(z)|Re(z)| ,

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

Výraz maticová funkce se někdy používá pro libovolné zobrazení z nějaké množiny do množiny matic.

Definice

Nechť f(z),f: 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:n×nn×n. Zobecnění lze provést několika různými avšak navzájem ekvivalentními[1] způsoby:

Definice pomocí Jordanova rozkladu

Uvažujme analytickou funkci

f(z)=k=0ϕkzk,

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)=k=0ϕkAk.

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

X1AX=D=diag(λ1,,λn),

pak

f(A)=k=0ϕk(XDX1)k.

Protože

(XDX1)2=(XDX1)(XDX1)=XD2X1=Xdiag(λ12,,λn2)X1,

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

(XDX1)k=(XDX1)(XDX1)k1=(XDX1)(XDk1X1)=XDkX1=Xdiag(λ1k,,λnk)X1,

a tedy

f(A)=X(k=0ϕkdiag(λ1k,,λnk))X1.

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

f(A)=Xdiag(f(λ1),,f(λn))X1.

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

X1AX=J,

kde matice

J=diag(J1,,Jm),Jp=(λp1λp1λp1λp)np×np,p=1,,m,

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

f(A)=Xdiag(f(J1),,f(Jm))X1,

kde

f(Jp)=(f(λp)f(λp)f(np1)(λp)(np1)!0f(λp)f(λp)00f(λp)).

Definice pomocí Cauchyho integrálu

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

f(λp)=12πiΓf(s)sλpds,

a

f(A)=12πiΓf(s)(sIA)1ds.

Definice pomocí polynomiální interpolace

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

Šablona:Pahýl část

Výpočet

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 A se používají algoritmy založené na Newtonově metodě.
  • Při výpočtu znaménkové funkce 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 cHf(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 kn). 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 n2 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 cHf(A)b bez vyčíslování matice f(A) se používají speciální postupy a algoritmy.

Šablona:Pahýl část

Příklady aplikací

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

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

x˙=Ax,kdex=x(t)

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

exp(At).

Řešení ljapunovské rovnice

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

AX+XAH=BBH,A,Xn×n,Bn×k,

kde matice A je stabilní (tedy Re(λ)<0,λsp(A)). Řešení lze formálně zapsat ve tvaru

X=0exp(At)BBHexp(AHt)dt ,

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

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

Stabilizace matice

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=XDXH. Protože znaménková funkce je v celé komplexní rovině kromě imaginární osy analytická, platí

sgn(A)=Xdiag(sgn(Re(λ1)),,sgn(Re(λn)))XH.

Tedy matice

P=12(Isgn(A)),P+=12(I+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.

Šablona:Pahýl část

Příklad výpočtu

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

A=(301121101)=(100101110)(210020002)(100101110)1

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

exp(A)=(100101110)(e2e200e2000e2)(100101110)=(2e20e2e2e2e2e200).

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

A=(π6+241π62)=(2110)(π610π6)(2110)1,

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

sin(A)=(2110)sin(π610π6)(0112)=(2110)(sinπ6cosπ60sinπ6)(0112)=(12+323123123).

Reference

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

Literatura

  • 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. Šablona:ISBN. (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. Šablona:ISBN. (Kapitola 11, Functions of Matrices, str. 555-578.)

Související články

Šablona:Pahýl Šablona:Autoritní data

Šablona:Portály