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

更新


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

#contents

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

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

実対称行列とは実行列(実数行列)かつ対称行列であること。

実行列:&math(\bar A=A);  ⇔  要素が実数 &math(\big(\bar a_{ij}\big)=\big(a_{ij}\big));

対称行列:&math({}^t\!A=A);  ⇔  対称 &math(\big(a_{ji}\big)=\big(a_{ij}\big));

** 実対称行列の固有値は必ず実数 [#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(\,{}^t\!(AB)=\,{}^t\!B\,{}^t\!A); に注意しながら、

&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((\bm z,\bm z)\ge 0); となるから、&math(\|\bm z\|=\sqrt{(\bm z,\bm z)}); をノルムとして定義できる。

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

上記の証明を複素内積を使って書けば、

 &math((A\bm x,\bm x)=(\bm x,A\bm x)); と &math(A\bm x=\lambda\bm x); を仮定して、

 &math((左辺)=\bar{\lambda}(\bm x,\bm x));

 &math((右辺)=\lambda(\bm x,\bm x));

 &math(\therefore (\lambda-\bar{\lambda})(\bm x,\bm x)=0);

 &math((\bm x,\bm x)\ne 0); であれば &math(\lambda=\bar\lambda); を得る。

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

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

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

** 実対称行列では、異なる固有値に属する固有ベクトルは直交する [#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) 固有値がすべて異なる場合、固有ベクトル &math(\set{\bm p_k}); は自動的に直交するので、
大きさが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.2)とほぼ同じになるためここでは省略)
(証明は (定理6.8) にあるが、[[三角化に関する(定理6.2)>線形代数I/対角化(一般の場合)#m3c1a3d7]]とほぼ同じになるためここでは省略)

それらをグラム・シュミットの直交化法により正規直交化すれば、
他の固有ベクトルも合わせてすべての固有ベクトルが直交することとなり、
それらを規格化すればやはり直交行列 &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(\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
**お間違えでは? [#md734115]
>[[石原宏明]] (&timetag(2023-03-14T09:02:42+09:00, 2023-03-14 (火) 18:02:42);)~
~
「実対称行列の対角化の応用」の手前~
「の形に直交化される」は「の形に対角化される」~
の間違いですね?~

//
- ご指摘ありがとうございます。遅くなりましたが修正いたしました。 -- [[武内(管理人)]] &new{2023-09-07 (木) 17:06:16};

#comment_kcaptcha

**対称行列の特殊性について [#j0952cf2]
>[[ota]] (&timetag(2018-08-10T11:23:36+09:00, 2018-08-10 (金) 20:23:36);)~
~
対称行列をテクニック的に対角化する方法は理解しましたが、なぜ対称行列のみ固有ベクトルを使用した対角化ではなく、わざわざ個々の固有ベクトルを直行行列に変換してからの対角化作業になるのでしょうか?他の行列とは違う特性を対称行列は持つため、他種正規行列の対角化プロセスが効かないと漠然とした理解をしていますが、その本質は何なのでしょうか?~

//
- 我々のカリキュラムでは2年生になってから学ぶことになるのですが、直交行列による相似変換(&math(R^{-1}AR); の変換)は、正規直交座標系から正規直交座標系への座標変換に対応しており応用上重要な意味を持っています。直交行列(複素ベクトルの場合も含めるとユニタリ行列)で対角化可能な行列を正規行列と呼びますが、そのような行列が対角行列となるような正規直交座標系を考えるための準備として、ここでは対称行列を正規直交行列で対角化する練習をしています。 -- [[武内(管理人)]] &new{2018-08-10 (金) 21:48:03};
- 対称行列であっても、任意の固有ベクトルを並べるだけで対角化は可能ですのでその点は誤解の無いようにして下さい。対称行列では固有ベクトルだけからなる正規直交系を作れるので、そのおかげで直交行列で対角化が可能、という話の流れになっています。 -- [[武内(管理人)]] &new{2018-08-10 (金) 21:50:13};

#comment_kcaptcha

**二次形式の符号について [#v1fa71b8]
>[[田村海人]] (&timetag(2017-12-19T05:58:14+09:00, 2017-12-19 (火) 14:58:14);)~
~
二次形式の符号を求める問題です。~
x^2+ay^2+z^2+2xy+2ayz+2azx~
aは実定数です。~

//

#comment_kcaptcha

**2重解の固有ベクトル [#u234aaab]
>[[Gramm Smidt ]] (&timetag(2016-07-19T13:36:07+09:00, 2016-07-19 (火) 22:36:07);)~
~
Gramm Smidt の固有ベクトルの求め方はいつ使えるのですか?~
sanduinjud@gmail.com~

//
- 下でも書きましたが、直交行列(ユニタリ行列)による対角化を行いたい場合に用います。 -- [[武内 (管理人)]] &new{2016-07-19 (火) 22:49:19};

#comment_kcaptcha

**2重解の固有ベクトル [#i5bba36d]
>[[sando]] (&timetag(2016-07-19T13:34:16+09:00, 2016-07-19 (火) 22:34:16);)~
~
先生!~
2重解の固有ベクトルが(-1,1,0)と(-1,0,1)でいいんじゃないです?なぜ(-1,0.1)and (0.-1,1)ですか?sanduinjud@gmail.com~

//
- はい、単に対角化するだけなら (-1,0,1) と (0,-1,1) は一次独立なので、このままで問題ありません。ここでは「直交行列による対角化」を行いたかったため、これらを直交化して (-1,0,1) と (1,-2,1) を得ています。直交行列(あるいはユニタリ行列)では各列ベクトルは正規直交系になっている必要があります。 -- [[武内 (管理人)]] &new{2016-07-19 (火) 22:47:49};

#comment_kcaptcha


Counter: 273512 (from 2010/06/03), today: 21, yesterday: 0