線形代数I/実対称行列の対角化 のバックアップ差分(No.3)

更新


  • 追加された行はこの色です。
  • 削除された行はこの色です。
[[線形代数I]]

#contents

培風館「教養の線形代数(五訂版)」に沿って行っている授業の授業ノート(の一部)です。

* 実対称行列の対角化 [#rae87767]

** 実対称行列の固有値は必ず実数 [#y13dad29]

準備:

任意の複素ベクトル &math(\bm z); に対して、&math({}^t\bar{\bm z}\bm z); は実数であり、
&math({}^t\bar{\bm z}\bm z\ge 0);。等号は &math(\bm z=\bm 0); の時のみ成り立つ。

&math(
\because \bm z=\begin{bmatrix}z_1\\z_2\\\vdots\\z_n\end{bmatrix}, \bar{\bm z}=\begin{bmatrix}\bar z_1\\\bar z_2\\\vdots\\\bar z_n\end{bmatrix}, {}^t\!\bar{\bm z}=\begin{bmatrix}\bar z_1&\bar z_2&\cdots&\bar z_n\end{bmatrix}
);

&math(
{}^t\!\bar{\bm z} \bm z&=\bar z_1 z_1 + \bar z_2 z_2 + \dots + \bar z_n z_n\\
&=\|z_1\|^2 + \|z_2\|^2 + \dots + \|z_n\|^2 \in \mathbb R\\
);

右辺は明らかに非負で、ゼロになるのは &math(\bm z=\bm 0); の時のみである。

証明:

&math(A\bm z=\lambda \bm z); の時、

&math(
&\lambda\,{}^t\!\bar{\bm z} \bm z=
{}^t\!\bar{\bm z} (\lambda\bm z)=
{}^t\!\bar{\bm z} (A \bm z)=
{}^t\!\bar{\bm z} A \bm z=
{}^t\!\bar{\bm z}\, {}^t\!A \bm z=
{}^t\!\bar{\bm z}\, {}^t\!\bar A \bm z=\\
&{}^t\!(\bar A\bar{\bm z}) \bm z=
\overline{{}^t\!(A{\bm z})} \bm z=
\overline{{}^t\!(\lambda{\bm z})} \bm z=
\overline{(\lambda{}^t\!\bm z)} \bm z=
\bar\lambda\,{}^t\!\bar{\bm z} \bm z
);

&math(
(\lambda-\bar\lambda)\,{}^t\!\bar{\bm z} \bm z=0
);

&math(\bm z\ne \bm 0); の時、&math({}^t\!\bar{\bm z} \bm z\ne 0); より、
&math(\lambda=\bar \lambda); を得る。

*** 複素内積、エルミート行列 [#pa4e9431]

実は、複素ベクトルを考える場合、内積の定義は &math((\bm x,\bm y)={}^t\bm x\bm y); ではなく、
&math((\bm x,\bm y)={}^t\bar{\bm x}\bm y); を用いる。

そうすることで、&math(|z|^2=(\bm z,\bm z)\ge 0); がノルムとして定義される。

このとき、&math((A\bm x,\bm y)=(\bm x,A\bm y)); を満たすのは対称行列 (&math(A={}^tA);) ではなく、
エルミート行列 &math(A={}^t\!\bar A); である。対称行列は実エルミート行列と言っても良い。

対称行列に限らず、エルミート行列はすべて固有値が実数となる。

対称行列では固有ベクトルも実数となる。~
複素エルミート行列の場合、固有ベクトルは実数にはならない。
対称行列では固有ベクトルも実ベクトルとなる。~
複素エルミート行列の場合、固有ベクトルは実ベクトルにはならない。

以下は実数の範囲のみを考える。

** 実対称行列では、異なる固有値に属する固有ベクトルは直交する [#o90f751d]

&math(A\bm x=\lambda \bm x, A\bm y=\mu \bm y); かつ &math(\lambda\ne\mu); の時、

&math(\lambda(\bm x,\bm y)=(\lambda\bm x,\bm y)=(A\bm x,\bm y)=(\bm x,\,{}^t\!A\bm y)=(\bm x,A\bm y)=(\bm x,\mu\bm y)=\mu(\bm x,\bm y));

すなわち、

&math((\lambda-\mu)(\bm x,\bm y)=0);

&math(\lambda-\mu\ne 0); より、

&math((\bm x,\bm y)=0);

を得る。

** 実対称行列の直交行列による対角化 [#rf85899c]

(1) 固有値がすべて異なる場合、固有ベクトルは自動的に直交するので、
大きさが1になるように選ぶことにより (&math(\bm r_k=\frac{1}{|\bm p_k|}\bm p_k);)、

&math(R=\Bigg[\bm r_1\ \bm r_2\ \dots\ \bm r_n\Bigg]);

は直交行列となり、この &math(R); を用いて、

&math(R^{-1}AR);

を対角行列にできる。

(2) 固有値に重複がある場合にも、

対称行列では、重複する固有値に属する1次独立な固有ベクトルを重複度分だけ見つけることが常に可能~
(証明は (定理6.8) にあるが、ここでは省略)
(証明は (定理6.8) にあるが、三角化に関する(定理6.2)とほぼ同じになるためここでは省略)

それらをグラム・シュミットの直交化法により正規直交化し、他の固有ベクトルと合わせれば、
やはり直交行列 &math(R); が得られる。
それらをグラム・シュミットの直交化法により正規直交化すれば、
他の固有ベクトルも合わせてすべての固有ベクトルが直交することとなり、
それらを規格化すればやはり直交行列 &math(R); が得られる。

*** 例 [#udc7f9ee]

&math(A=\begin{bmatrix}2&1&1\\1&2&1\\1&1&2\end{bmatrix});

まず固有値を求める

&math(
|A-\lambda I|&=\begin{vmatrix}2-\lambda&1&1\\1&2-\lambda&1\\1&1&2-\lambda\end{vmatrix}\\
&=\begin{vmatrix}4-\lambda&4-\lambda&4-\lambda\\1&2-\lambda&1\\1&1&2-\lambda\end{vmatrix}\hspace{1cm}\leftarrow\text{2,3行目を1行目に加えた}\\
&=(4-\lambda)\begin{vmatrix}1&1&1\\1&2-\lambda&1\\1&1&2-\lambda\end{vmatrix}\\
&=(4-\lambda)\begin{vmatrix}1&0&0\\1&1-\lambda&0\\1&0&1-\lambda\end{vmatrix}\\
&=(1-\lambda)^2(4-\lambda)\\
);

&math(\lambda=1,4); ただし &math(1); は2重解。

I. &math(\lambda=1); の時、

&math(
(A-\lambda I)\bm x&=
\begin{bmatrix}1&1&1\\1&1&1\\1&1&1\end{bmatrix}
\begin{bmatrix}x\\y\\z\end{bmatrix}\\
);

&math(\therefore x+y+z=0); 掃き出せない &math(y,z); をパラメータ &math(s,t); と置けば 
&math(x=-s-t);

したがって、

&math(
\begin{bmatrix}x\\y\\z\end{bmatrix}=s\begin{bmatrix}-1\\0\\1\end{bmatrix}+t\begin{bmatrix}0\\-1\\1\end{bmatrix}
);

II. &math(\lambda=4); の時、

&math(
(A-\lambda I)\bm x&=
\begin{bmatrix}-2&1&1\\1&-2&1\\1&1&-2\end{bmatrix}
\begin{bmatrix}x\\y\\z\end{bmatrix}\\
);

&math(
&\begin{bmatrix}-2&1&1&0\\1&-2&1&0\\1&1&-2&0\end{bmatrix}\\
&\sim \begin{bmatrix}1&-2&1&0\\-2&1&1&0\\1&1&-2&0\end{bmatrix}\\
&\sim \begin{bmatrix}1&-2&1&0\\0&-3&3&0\\0&3&-3&0\end{bmatrix}\\
&\sim \begin{bmatrix}1&-2&1&0\\0&1&-1&0\\0&1&-1&0\end{bmatrix}\\
&\sim \begin{bmatrix}1&0&-1&0\\0&1&-1&0\\0&0&0&0\end{bmatrix}\\
);

&math(\therefore \begin{cases}x-z=0\\y-z=0\end{cases}); 掃き出せない &math(z); をパラメータ &math(s); と置けば &math(x=y=s);

したがって、

&math(
\begin{bmatrix}x\\y\\z\end{bmatrix}=s\begin{bmatrix}1\\1\\1\end{bmatrix}
);

&math(A); が実対称行列であるため、

&math(\begin{bmatrix}-1\\0\\1\end{bmatrix}\perp\begin{bmatrix}1\\1\\1\end{bmatrix});
および
&math(\begin{bmatrix}0\\-1\\1\end{bmatrix}\perp\begin{bmatrix}1\\1\\1\end{bmatrix});
が確認できる。

同じ固有値 &math(\lambda=1); に属する &math(\begin{bmatrix}-1\\0\\1\end{bmatrix}); と 
&math(\begin{bmatrix}0\\-1\\1\end{bmatrix}); とは直交しないので、これらをシュミットの
直交化法により直交させる。
&math(\begin{bmatrix}0\\-1\\1\end{bmatrix}); とはこのままでは直交していないので、
これらをシュミットの直交化法により直交させる。

&math(\bm f_1=\begin{bmatrix}-1\\0\\1\end{bmatrix});

&math(\bm e_1=\frac{1}{|\bm f_1|}\bm f_1=\frac{1}{\sqrt 2}\begin{bmatrix}-1\\0\\1\end{bmatrix});

&math(\bm f_2&=\begin{bmatrix}0\\-1\\1\end{bmatrix}-\left(\bm e_1,\begin{bmatrix}0\\-1\\1\end{bmatrix}\right)\bm e_1\\
&=\begin{bmatrix}0\\-1\\1\end{bmatrix}-\frac{1}{2}\begin{bmatrix}-1\\0\\1\end{bmatrix}\\
&=\frac{1}{2}\begin{bmatrix}1\\-2\\1\end{bmatrix});

&math(\bm e_2=\frac{1}{|\bm f_2|}\bm f_2=\frac{1}{\sqrt 6}\begin{bmatrix}1\\-2\\1\end{bmatrix});

&math(\bm f_3=\begin{bmatrix}1\\1\\1\end{bmatrix});

&math(\bm e_3=\frac{1}{|\bm f_3|}\bm f_3=\frac{1}{\sqrt 3}\begin{bmatrix}1\\1\\1\end{bmatrix});

したがって、

&math(R=\begin{bmatrix}-1/\sqrt 2&1/\sqrt 6&1/\sqrt 3\\0&-2/\sqrt 6&1/\sqrt 3\\1/\sqrt 2&1/\sqrt 6&1/\sqrt 3\end{bmatrix});

と置けば、&math(R); は直交行列となる。

念のため確かめてみると、

&math({}^t\!RR&=\begin{bmatrix}-1/\sqrt 2&0&1/\sqrt 2\\1/\sqrt 6&-2/\sqrt 6&1/\sqrt 6\\1/\sqrt 3&1/\sqrt 3&1/\sqrt 3\end{bmatrix}\begin{bmatrix}-1/\sqrt 2&1/\sqrt 6&1/\sqrt 3\\0&-2/\sqrt 6&1/\sqrt 3\\1/\sqrt 2&1/\sqrt 6&1/\sqrt 3\end{bmatrix}\\
&=\begin{bmatrix}1/2+1/2&-1/\sqrt{12}+1/\sqrt{12}&-1/\sqrt{6}+1/\sqrt{6}\\-1/\sqrt{12}+1/\sqrt{12}&1/6+4/6+1/6&1/\sqrt{18}-2/\sqrt{18}+1/\sqrt{18}\\-1/\sqrt 6+1/\sqrt 6&1/\sqrt{18}-2/\sqrt{18}+1/\sqrt{18}&1/\sqrt 3+1/\sqrt 3+1/\sqrt 3\end{bmatrix}\\
&=\begin{bmatrix}1&0&0\\0&1&0\\0&0&1\end{bmatrix});

で、直交行列の条件 &math({}^t\!R=R^{-1}); を満たしていることが分かる。

この &math(R); を使って、&math(A); は

&math(R^{-1}AR=\begin{bmatrix}1&0&0\\0&1&0\\0&0&4\end{bmatrix});

の形に直交化される。

* 実対称行列の対角化の応用 [#ve9f883d]

** 実数係数の2次形式を実対称行列で表す [#p6b12045]

変数 &math(x_1, x_2, \dots, x_n); の2次形式とは、

&math(
\sum_{i=1}^n\sum_{j=1}^na_{ij}x_ix_j
);

の形の、2次の同次多項式である。

例:

&math(x); の2次形式の一般形: &math(ax^2);

&math(x,y); の2次形式の一般形: &math(ax^2+by^2+cxy);

&math(x,y,z); の2次形式の一般形: &math(ax^2+by^2+cz^2+dxy+eyz+fzx);

ここで一般に、

&math(
\sum_{i=1}^n\sum_{j=1}^na_{ij}x_ix_j=
\begin{bmatrix}x_1&x_2&\cdots&x_n\end{bmatrix}
\begin{bmatrix}a_{11}&a_{12}&\cdots&a_{1n}\\a_{21}&a_{22}&&\vdots\\\vdots&&\ddots&\vdots\\a_{b1}&\cdots&\cdots&a_{nn}\end{bmatrix}
\begin{bmatrix}x_1\\x_2\\\vdots\\x_n\end{bmatrix}={}^t\!\bm xA\bm x
);

と表せることに注意しよう。

例:

&math(\begin{bmatrix}x&y\end{bmatrix}\begin{bmatrix}a&b\\c&d\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}x&y\end{bmatrix}\begin{bmatrix}ax+by\\cx+dy\end{bmatrix}=ax^2+bxy+cyx+dy^2);

しかも、例えば &math(a_{12}x_1x_2+a_{21}x_2x_1=(a_{12}+a_{21})x_1x_2)); のように、
&math(a_{12}+a_{21}); の値が変わらない限り、&math(a_{12}); と &math(a_{21}); を変化させても
式の値は変化しない。したがって、任意の2次形式を &math(a_{ij}=a_{ji}); すなわち対称行列 &math(A); 
を用いて &math({}^t\!\bm xA\bm x); の形に表せることになる。

例:

&math(
ax^2+by^2+cz^2+dxy+eyz+fzx=
\begin{bmatrix}x&y&z\end{bmatrix}
\begin{bmatrix}a&d/2&f/2\\d/2&b&e/2\\f/2&e/2&c\end{bmatrix}
\begin{bmatrix}x\\y\\z\end{bmatrix}
);

** 2次形式の標準形 [#n0e924a6]

上記の &math(A); は実対称行列であるから、適当な直交行列 &math(R); によって

&math(R^{-1}AR={}^t\!RAR=\begin{bmatrix}\lambda_1\\&\lambda_2\\&&\ddots\\&&&\lambda_n\end{bmatrix});

のように対角化される。この式に &math({}^t\!\bm y); および &math(\bm y); を掛ければ、

&math({}^t\!\bm y{}^t\!RAR\bm y={}^t\!(R\bm y)A(R\bm y)={}^t\!\bm y\begin{bmatrix}\lambda_1\\&\lambda_2\\&&\ddots\\&&&\lambda_n\end{bmatrix}\bm y=\lambda_1y_1^2+\lambda_2y_2^2+\dots+\lambda_ny_n^2);

そこで、&math(\bm y); を

&math(\bm x=R\bm y);

となるように取れば、

&math(
{}^t\!\bm xA\bm x={}^t\!(R\bm y)A(R\bm y)=\lambda_1y_1^2+\lambda_2y_2^2+\dots+\lambda_ny_n^2
);

のように、

&math(
\begin{cases}
x_1=r_{11}y_1+r_{12}y_2+\dots+r_{1n}y_n\\
x_2=r_{21}y_1+r_{22}y_2+\dots+r_{2n}y_n\\
\vdots\\
x_n=r_{n1}y_1+r_{n2}y_2+\dots+r_{nn}y_n\\
\end{cases}
);

なる変数変換で、2次形式を平方完成できることが分かる。

&math(
{}^t\!\bm xA\bm x=\lambda_1(r_{11}x_1^2+r_{12}x_1x_2+\dots)^2+\lambda_2(r_{21}x_2x_1+r_{22}x_2^2+\dots)^2+\dots+\lambda_n(r_{n1}x_nx_1+r_{n2}x_nx_2+)^2
);

このように平方完成した右辺を「2次形式の標準形」と呼ぶ。

2次形式の標準形に現れる係数は、&math(A); の固有値であることに注意せよ。

*** 例 [#od6e95db]

&math(2x_1^2+2x_2^2+2x_3^2+2x_1x_2+2x_2x_3+2x_3x_1); を標準形に直せ:

&math((与式)={}^t\!\bm x\begin{bmatrix}2&1&1\\1&2&1\\1&1&2\end{bmatrix}\bm x={}^t\!\bm xA\bm x);

この &math(A); は、

&math(R=\begin{bmatrix}-1/\sqrt 2&1/\sqrt 6&1/\sqrt 3\\0&-2/\sqrt 6&1/\sqrt 3\\1/\sqrt 2&1/\sqrt 6&1/\sqrt 3\end{bmatrix});

により、

&math(R^{-1}AR=\begin{bmatrix}1&0&0\\0&1&0\\0&0&4\end{bmatrix});

の形に対角化される。

したがって、

&math(\bm x=R\bm y);

なる変数変換により、標準形

&math((与式)=y_1^2+y_2^2+4y_3^2);

を得る。

** 正値・負値 [#a02de166]

係数行列 &math(A); のすべての固有値が &math(\lambda_i>0); であるとき、

&math({}^t\!\bm xA\bm x=\sum_{i=1}^n\lambda_iy_i^2\ge 0);

であり、等号は &math(y_1=y_2=\dots=y_n=0);、すなわち &math(\bm y=\bm 0);、
すなわち &math(\bm x=R\bm y); により &math(\bm x=\bm 0); の時のみ成り立つ。

このような2次形式を正値2次形式と呼ぶ。

逆に、すべての固有値が &math(\lambda_i<0); であるとき、
&math({}^t\!\bm xA\bm x\le 0); で、等号は
&math(\bm x=\bm 0); の時のみ成り立つ。

このような2次形式を負値2次形式と呼ぶ。

- 係数行列の固有値を調べることにより、2次形式の正値性・負値性を判別できる。

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

#article_kcaptcha


Counter: 273511 (from 2010/06/03), today: 20, yesterday: 0