線形代数II/行列の関数 のバックアップソース(No.6)

更新

[[前の単元 <<<>線形代数II/固有値問題・固有空間・スペクトル分解]]
               [[線形代数II]]
               [[>>> 次の単元>線形代数II/連立線形微分方程式]]

#contents

* 行列の多項式 [#he025e6d]

行列を対角化できるとき、行列の多項式の値を容易に計算できる。

SIZE(20){COLOR(red){この単元は H26 から線形代数IIの範囲から外れました。関連分野ということで記述は残しておくことにします。}}

** 対角行列の累乗 [#y3d82efa]

対角行列 &math(D); を

&math(D=\begin{pmatrix}a&0\\0&d\end{pmatrix});

とすれば、

&math(D^2=\begin{pmatrix}a&0\\0&d\end{pmatrix}\begin{pmatrix}a&0\\0&d\end{pmatrix}=\begin{pmatrix}a^2&0\\0&d^2\end{pmatrix});

であり、同様に、

&math(D^m=\begin{pmatrix}a^m&0\\0&d^m\end{pmatrix});

** 対角行列の多項式 [#v94b7d4f]

例えば、

&math(\alpha D^l+\beta D^m=\alpha \begin{pmatrix}a^l&0\\0&d^l\end{pmatrix}+\beta \begin{pmatrix}a^m&0\\0&d^m\end{pmatrix}
=\begin{pmatrix}\alpha a^l+\beta a^m&0\\0&\alpha d^l+\beta d^m\end{pmatrix});

元の式 &math(\alpha D^l+\beta D^m); と、~
結果の対角要素 &math(\alpha a^l+\beta a^m);、&math(\alpha d^l+\beta d^m); ~
の類似性に注目せよ。

** 一般の行列の累乗 [#l3589701]

&math(A); を &math(n); 次の行列として、&math(P); により対角化可能とする。

&math(P^{-1}AP=D=
\begin{pmatrix}
\lambda_1&0&\dots&0\\
0&\lambda_2&&\vdots\\
\vdots&&\ddots&0\\
0&\dots&0&\lambda_n
\end{pmatrix}
);

すると、

&math(A=PDP^{-1});

より、

&math(
A^m &= (PDP^{-1})^m =PD\underbrace{P^{-1}P}_{E}D\cdots D\underbrace{P^{-1}P}_{E}DP^{-1}\\
&= PD^mP^{-1}
=P \begin{pmatrix}
\lambda_1^m&0&\dots&0\\
0&\lambda_2^m&&\vdots\\
\vdots&&\ddots&0\\
0&\dots&0&\lambda_n^m
\end{pmatrix} P^{-1}
);

と表せる。

左辺を普通に計算しようとすれば行列のかけ算が &math(m-1); 回必要になるが、
右辺は数値の &math(m); 乗が &math(n); 回と、行列のかけ算2回で済むため計算量が少なく、
また理論的にも見通しがよい。

** 一般の行列の多項式 [#s10b8802]

&math(g(x)); を任意の多項式として、

&math(g(x)=a_0+a_1x+a_2x^2+a_3x^3+\dots=\sum_{k=0}a_kx^k);

&math(g(A)); を次のように定義する。

&math(g(A)=a_0{\red E}+a_1A+a_2A^2+a_3A^3+\dots=\sum_{k=0}a_kA^k);

(ゼロ次項に単位行列が掛かっていることに注意せよ)

すると、

&math(
g(A)&=\sum_{k=0}a_kPD^kP^{-1}\\
&=P\Big(\sum_{k=0}a_kD^k\Big)P^{-1}\\
&= P\begin{pmatrix}
g(\lambda_1)&0&\dots&0\\
0&g(\lambda_2)&&\vdots\\
\vdots&&\ddots&0\\
0&\dots&0&g(\lambda_n)
\end{pmatrix} P^{-1}
);

のように、任意の行列の多項式を、対角化を用いて固有値の多項式に関連づけることができる。

** 行列の指数関数 [#u126bcdc]

指数関数をマクローリン展開すると、

&math(
e^x=1+x+\frac{1}{2!}x^2+\frac{1}{3!}x^3+\dots=\sum_{k=0} \frac{1}{k!}x^k
);

であるから、

&math(e^{A}=\sum_{k=0} \frac{1}{k!}A^k);

として、「行列の指数関数」を定義できる。

また、&math(A); が対角化可能な場合にはこの値を

&math(
e^{A}=\sum_{k=0} \frac{1}{k!}A^k=g(A)=
P \begin{pmatrix}
g(\lambda_1)&0&\dots&0\\
0&g(\lambda_2)&&\vdots\\
\vdots&&\ddots&0\\
0&\dots&0&g(\lambda_n)
\end{pmatrix} P^{-1}=
P \begin{pmatrix}
e^{\lambda_1}&0&\dots&0\\
0&e^{\lambda_2}&&\vdots\\
\vdots&&\ddots&0\\
0&\dots&0&e^{\lambda_n}
\end{pmatrix} P^{-1}
);

などとして、行列の指数関数の値を固有値の指数関数の値から求められる。

** 一般の関数 [#k3d26fef]

一般の関数 &math(f(x)); が &math(x=0); でマクローリン展開可能であれば、
収束半径内において

&math(f(x)=\sum_{k=0} \frac{1}{k!}\frac{d^kf(0)}{dx^k}x^k);

と書けるから、上記と同様に &math(f(A)); を定義できて、
対角化が可能な場合には固有値に &math(f); を適用することでその値を求められる。

* 数値関数との類似性 [#g1d070a6]

&math(e^ae^{-a}=1);

&math(
e^Ae^{-A}
&=\Big(\sum_{k=0}^\infty \frac{A^k}{k!}\Big)\Big(\sum_{l=0}^\infty \frac{(-A)^{l}}{l!}\Big)\\
&=\sum_{k=0}^\infty \sum_{l=0}^\infty \frac{A^k}{k!}\frac{(-A)^{l}}{l!}\\
&=\sum_{m=0}^\infty \sum_{n=0}^m \frac{A^{m-n}(-A)^{n}}{(m-n)!n!}\hspace{2cm}(m=k+l\ の等しい項をまとめた)\\
&=\sum_{m=0}^\infty \frac{1}{m!} \sum_{n=0}^m \frac{m!}{(m-n)!n!}A^{m-n}(-A)^{n}\\
&=\sum_{m=0}^\infty \frac{1}{m!}  (A-A)^m\\
&=E+O+O+\cdots\\
&=E\\
);

&math(\frac{d}{dt}e^{at}=ae^{at});

&math(
\frac{d}{dt}e^{tA}&=\frac{d}{dt}\Big(E+tA+\frac{t^2}{2}A^2+\frac{t^3}{6}A^3+\cdots\Big)\\
&=\hspace{16.8mm}A+\ t\;A^2+\frac{t^2}{2}A^3+\cdots\\
&=\hspace{11mm}A\Big(E+\ t\;A\ +\frac{t^2}{2}A^2+\cdots\Big)\\
&=Ae^{tA}
);

一方で、

 &math(e^ae^b=e^{a+b}); 

であるが、一般の &math(A,B); に対しては、

 &math(e^Ae^B\ne e^{A+B});

である。これは、&math(ab=ba); であるが、一般に &math(AB\ne BA); であるため。

&math(AB=BA); あるいは同じことであるが &math(AB-BA=O); が成り立つ &math(A,B); 
(可換な &math(A,B);)に対しては上式も成り立つ。

* まとめ [#yf27007b]

このように、行列の関数は多くの点で数値の関数と似た性質を持つ。

そして、行列が対角化可能な場合にはその値を固有値に関数を適用することで
行列の関数の値を求められる。

[[前の単元 <<<>線形代数II/固有値問題・固有空間・スペクトル分解]]
               [[線形代数II]]
               [[>>> 次の単元>線形代数II/連立線形微分方程式]]

* 質問・コメント [#qf4681b6]

#article_kcaptcha

Counter: 37048 (from 2010/06/03), today: 1, yesterday: 0