目次
Math
Analysis
Experiment
Simulations

05線形代数

▶︎
all
running...

線形代数を学ぶ意義

こういう話は今度

固有値,固有ベクトル

ここでは,線形代数を学ぶ中でも特に重要な概念である,固有値と固有ベクトルの考え方,求め方について解説します.主成分分析など,多くの重要な数学的手法を学ぶときに必要になるので,ここではつまらないですが頑張って理解しておきましょう.

固有ベクトル

はじめに,固有ベクトルについてです.行列A\bm{A}の固有ベクトルv\bm{v} とは,

「行列 A\bm{A} を掛けても,λ\lambda 倍されるだけで方向が変わらないベクトル」

のことを意味します.また,この時の対応する λ\lambda の値を固有値と言います.意味が分からないと思うので,とりあえず例を考えます.

たとえば,行列 A=(2003)\bm{A} = \begin{pmatrix} \displaystyle 2 & 0\\ \displaystyle 0 & 3 \end{pmatrix} を考えます.このベクトルを色んなベクトルに掛けてみます.

まずは,(10)\begin{pmatrix} \displaystyle 1\\ \displaystyle 0 \end{pmatrix},および(01)\begin{pmatrix} \displaystyle 0\\ \displaystyle 1 \end{pmatrix}を考えてみます.

(2003)(10)=(20)(2003)(01)=(03)\begin{pmatrix} \displaystyle 2 & 0\\ \displaystyle 0 & 3 \end{pmatrix} \begin{pmatrix} \displaystyle 1\\ \displaystyle 0 \end{pmatrix} = \begin{pmatrix} \displaystyle 2\\ \displaystyle 0 \end{pmatrix} \\[1em] \begin{pmatrix} \displaystyle 2 & 0\\ \displaystyle 0 & 3 \end{pmatrix} \begin{pmatrix} \displaystyle 0\\ \displaystyle 1 \end{pmatrix} = \begin{pmatrix} \displaystyle 0\\ \displaystyle 3 \end{pmatrix}

これらは,行列 A\bm{A} をかけても,それぞれ 2,32,3 倍されるだけです.つまり,行列 A\bm{A} の固有ベクトルは (1,0),(0,1)(1,0), (0,1) で,対応する固有値は 2,32,3 であることが分かります.

では次に,行列 B=(2113)\bm{B} = \begin{pmatrix} \displaystyle 2 & 1\\ \displaystyle 1 & 3 \end{pmatrix}

を考えます.

(2113)(10)=(21)(2113)(01)=(13)\begin{pmatrix} \displaystyle 2 & 1\\ \displaystyle 1 & 3 \end{pmatrix} \begin{pmatrix} \displaystyle 1\\ \displaystyle 0 \end{pmatrix} = \begin{pmatrix} \displaystyle 2\\ \displaystyle 1 \end{pmatrix} \\[1em] \begin{pmatrix} \displaystyle 2 & 1\\ \displaystyle 1 & 3 \end{pmatrix} \begin{pmatrix} \displaystyle 0\\ \displaystyle 1 \end{pmatrix} = \begin{pmatrix} \displaystyle 1\\ \displaystyle 3 \end{pmatrix}

今度は,どちらも λ\lambda 倍では表すことができなくなっています.つまり, (1,0),(0,1)(1,0),(0,1) は行列 B\bm{B} の固有ベクトルではありません.

今の計算結果を図にしてみます.

行列 A\bm{A} の方はこのように,(1,0),(0,1)(1,0), (0,1) ともに長さが伸びるだけです.一方で行列 B\bm{B}

このように,行列を作用させたことによって長さだけでなく向きも変化しています.当然,もう一度行列 B\bm{B} を作用させたら更に回転します.行列の掛け算が回転を意味していたことを考えれば分かることですが,行列が特殊な形でない限り,x,yx,y 軸方向にどれだけ伸びる...といった単純な考え方は通用しなくなってしまいます.

これが行列のややこしいところです.今やった式の形自体は,y=Axy = Axのような,一次関数のような形を取っているのに,その挙動がややこしくなってしまうのです.

モチベーション

これはたとえば,微分方程式なんかを考えると残念さが分かります.

先程の行列 A,B\bm{A,B} の問題は以下のように書き換えられます.

行列A\bm{A}
x˙=2xy˙=3yあるいは(x˙y˙)=(2003)(xy)\dot{x} = 2x\\ \dot{y} = 3y\\ \\[1em] \text{あるいは} \\[1em] \begin{pmatrix} \displaystyle \dot{x} \\ \displaystyle \dot{y} \end{pmatrix}= \begin{pmatrix} \displaystyle 2 & 0 \\ \displaystyle 0 & 3 \end{pmatrix} \begin{pmatrix} \displaystyle x \\ \displaystyle y \end{pmatrix}

行列B\bm{B}
x˙=2x+yy˙=x+3yあるいは(x˙y˙)=(2113)(xy)\dot{x} = 2x + y\\ \dot{y} = x + 3y\\ \\[1em] \text{あるいは} \\[1em] \begin{pmatrix} \displaystyle \dot{x} \\ \displaystyle \dot{y} \end{pmatrix}= \begin{pmatrix} \displaystyle 2 & 1 \\ \displaystyle 1 & 3 \end{pmatrix} \begin{pmatrix} \displaystyle x \\ \displaystyle y \end{pmatrix}

これらは,x,yx,yの時間変化が行列A,B\bm{A,B} との掛け算によって決まるという力学系を考えています.行列が特殊な形でない限り A\bm{A} の方が,どれだけ掛けても回転を意識しないで軸方向への伸びを考えればいいだけなので明らかに楽ですよね.

よって,行列 B\bm{B} のような一般のベクトルについても,こういう回転しない不変の軸を考えたい,という発想が生まれます.

求め方

行列 A\bm{A} が簡単な形になっていたのは,見ればわかりますが対角成分以外が0という形を取っているからです.これによって x,yx,y 軸以外の方向が関係なくなっているわけです.

このことから, 今考えている問題は B\bm{B} をどうにかして λI\lambda \bm{I}という形に表せないか,という問題であることに気付きます.I\bm{I} は単位ベクトル.

即ち,

Ax=λIx\bm{A}\bm{x} = \lambda \bm{I} \bm{x}

となる λ\lambdax\bm{x} を探す問題です.なので,

(AλI)x=0(A - \lambda \bm{I})\bm{x} = 0

を解きます.ここで先程のように x\bm{x}(x,y)(x,y) とするとこの式は

(AλI)x=(aλbcdλ)(xy)=x(aλc)+y(bdλ)=(00)(A - \lambda \bm{I})\bm{x} \\ \\[1em] = \begin{pmatrix} a-\lambda & b \\ c & d-\lambda \\ \end{pmatrix} \begin{pmatrix} x \\ y \\ \end{pmatrix} \\[1em] = x \begin{pmatrix} a-\lambda \\ c \end{pmatrix} + y \begin{pmatrix} b\\ d-\lambda \end{pmatrix} = \begin{pmatrix} 0\\ 0 \end{pmatrix}

という形で表せます.これを満たす x\bm{x} は,自明解として x=0\bm{x} = \bf{0} が自明解として存在しますが,これは除きます.なぜなら,軸になりえないからです.

また, (aλc)\begin{pmatrix} a-\lambda \\ c\end{pmatrix}(bdλ)\begin{pmatrix} b\\ d-\lambda \end{pmatrix} が線形独立な場合には先程の自明解以外がありえません.

従って,この問題の解は (aλc)\begin{pmatrix} a-\lambda \\ c\end{pmatrix}(bdλ)\begin{pmatrix} b\\ d-\lambda \end{pmatrix}線形従属である,即ち (aλbcdλ)\begin{pmatrix} a-\lambda & b \\ c & d-\lambda \\ \end{pmatrix}行列式が 0 であることを満たす必要がある,ということになります.

線形独立,従属,行列式の関係については行列式の解説を参照してください (今はないけど未来の筆者がやるはず).

固有値

つまり,

AλI=0|A - \lambda \bm{I}| = 0

を解く問題に帰着しました.行列式の定義より

AλI=(abcd)λ(1001)=aλbcdλ=(aλ)(dλ)bc=λ2(a+d)λ+adbc|A - \lambda \bm{I}| = \begin{vmatrix} \begin{pmatrix} a & b \\ c & d \\ \end{pmatrix} -\lambda \begin{pmatrix} 1 & 0 \\ 0 & 1 \\ \end{pmatrix} \end{vmatrix}\\ \\[1em] = \begin{vmatrix} a-\lambda & b \\ c & d-\lambda \\ \end{vmatrix} \\[1em] = (a-\lambda)(d-\lambda) - bc\\ = \lambda^2 - (a+d)\lambda + ad - bc

となります.ここで,行列のトレース τ\tau および行列式 Δ\Delta を用いると

AλI=λ2(a+d)λ+adbc=λ2τλ+Δ|A - \lambda \bm{I}| = \lambda^2 - (a+d)\lambda + ad - bc\\ = \lambda^2 - \tau \lambda + \Delta

となり,求める固有値 λ\lambdaの値は

λ1,2=τ±τ24Δ2\lambda_{1,2} = \frac{\tau \pm \sqrt{\tau^2 - 4\Delta}}{2}

と求まります.

固有ベクトル

あとは,得られた固有値を

(AλI)x=0(A - \lambda \bm{I})\bm{x} = 0

に代入し,計算することで,対応する固有ベクトル x\bm{x} も求まります.代入はそれぞれの λ\lambda で別に行い,別の固有ベクトルを求めます.

たとえば λ=λ1\lambda = \lambda_1 に対しては,

(aλ1bcdλ1)(xy)=(00)\begin{pmatrix} a-\lambda_1 & b \\ c & d-\lambda_1 \\ \end{pmatrix} \begin{pmatrix} x\\ y \end{pmatrix} = \begin{pmatrix} 0\\ 0 \end{pmatrix}

を解きます.つまり

((aλ1)x+bycx+(dλ1)y)=(00)\begin{pmatrix} (a-\lambda_1)x + by\\ cx +(d-\lambda_1) y \end{pmatrix}= \begin{pmatrix} 0\\ 0 \end{pmatrix}

この式から,x,yx,y の比が分かります.あとは,この比を満たすものは全て固有ベクトルになります.一般的には,そのうち最小の整数比のものを選んで固有ベクトルとすることが多いです.

たとえば,最小の整数比が1:2だった場合,

固有ベクトルx=t(12)(tは任意定数,t0)固有ベクトル \bm{x} = t \begin{pmatrix} 1\\ 2 \end{pmatrix} (t\text{は任意定数}, t\neq0)

や,

固有ベクトルx=C(12)固有ベクトル \bm{x} = \mathbb{C} \begin{pmatrix} 1\\ 2 \end{pmatrix}

などと表記することが多いです.C\mathbb{C}は複素数の意.

これによって,何度掛けても回転しない不変の軸を求める事ができました.

例題と確認

最後に,本当に回転しない軸が求められたのかを例題で確認してみます.

A=(1142)\bm{A} =\begin{pmatrix} 1 & 1\\ 4 & -2 \end{pmatrix} の固有値,固有ベクトルを求め,図示せよ.

まず
λ2τλ+Δ=0\lambda^2 - \tau \lambda + \Delta = 0

を解きます.τ,Δ\tau, \Deltaをそれぞれ計算して代入すると,

λ2+λ6=0(λ+3)(λ2)=0\lambda^2 +\lambda - 6 =0\\ (\lambda+3)(\lambda-2) = 0

となるので,λ=2,3\lambda = 2,-3
と固有値が求まります.

対応する固有ベクトルは,

((aλ)x+bycx+(dλ)y)=(00)\begin{pmatrix} (a-\lambda)x + by\\ cx +(d-\lambda) y \end{pmatrix}= \begin{pmatrix} 0\\ 0 \end{pmatrix}

より
λ=2\lambda = 2の時,

(x+y4x4y)=(00)x=y\begin{pmatrix} -x + y\\ 4x -4y \end{pmatrix}= \begin{pmatrix} 0\\ 0 \end{pmatrix} \\[1em] \therefore x=y

と分かります.よって固有ベクトルは t(11)t\begin{pmatrix} 1\\1 \end{pmatrix} です.

λ=3\lambda = -3の時,

(4x+y4x+y)=(00)x=4y\begin{pmatrix} 4x + y\\ 4x + y \end{pmatrix}= \begin{pmatrix} 0\\ 0 \end{pmatrix} \\[1em] \therefore x= -4y

なので,固有ベクトルはt(14)t\begin{pmatrix} -1\\4 \end{pmatrix},となります.

では実際,これらの固有ベクトルが行列 A\bm{A} をかけても向きが変わらないかを確認してみます.

(1142)(11)=(22)(1142)(14)=(312)\begin{pmatrix} 1 & 1 \\ 4 & -2 \\ \end{pmatrix} \begin{pmatrix} 1\\ 1 \end{pmatrix} = \begin{pmatrix} 2\\ 2 \end{pmatrix} \\[1em] \begin{pmatrix} 1 & 1 \\ 4 & -2 \\ \end{pmatrix} \begin{pmatrix} -1\\ 4 \end{pmatrix} = \begin{pmatrix} 3\\ -12 \end{pmatrix}

どちらも,ちゃんと固有値倍されて同じ向きのままですね.

図にすると以下

固有値,固有ベクトルは,今後様々なことを勉強する上で重要になってくる概念です.手計算ができる必要はそれほどありません (3次元以上の行列になるとかなり面倒になってくる) が,内容は把握しておくことを勧めます.

たとえば,主成分分析や力学系の線形安定性解析なんかにはダイレクトに使います.

行列の微積分

い,いつか...いつかやるんです...本当です...

ホーム