Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

応用数学 ch5メモ(2次形式、対角化、固有値)

対称行列の固有値

対称行列に対しては

  • 固有値も固有ベクトルもすべて実数

  • 固有ベクトルは互いに直交する

という性質を持っている。

現実世界やデータサイエンス領域での応用において固有値を求めるとき、相関行列や分散共分散行列など対称行列の固有値を求めることが多いので対称行列に対する固有値のトピックに触れておくと理解しやすい。

対称行列の固有値と固有ベクトルは実数

証明

対称行列AAの一つの固有値をλ\lambda、対応する固有ベクトルをu=(u1⋮un)u=\begin{pmatrix} u_1 \\ \vdots \\ u_n \end{pmatrix} とすると、定義よりAu=λuA u = \lambda uである。両辺の複素共役をとったものと合わせると次のように書くことができる。

Au=λu,Auˉ=λˉuˉA u = \lambda u, \quad A \bar{u} = \bar{\lambda} \bar{u}

uˉ\bar{u}と第1式の両辺を、uuと第2式の両辺をそれぞれ内積をとると

⟨uˉ,Au⟩=λ⟨uˉ,u⟩,⟨u,Auˉ⟩=λˉ⟨u,uˉ⟩\langle \bar{u}, A u \rangle = \lambda \langle \bar{u}, u \rangle , \quad \langle u, A \bar{u} \rangle = \bar{\lambda} \langle u, \bar{u} \rangle

となる。「正方行列AAに対して ⟨Au,y⟩=⟨u,A⊤y⟩\langle \boldsymbol{A} \boldsymbol{u}, \boldsymbol{y} \rangle= \langle \boldsymbol{u}, \boldsymbol{A}^{\top} \boldsymbol{y} \rangle が成り立つ」という定理と、またAAは対称行列のためA=A⊤A=A^\topであることから、

⟨uˉ,Au⟩=⟨Au,uˉ⟩=⟨u,A⊤uˉ⟩=⟨u,Auˉ⟩\langle \bar{u}, A u \rangle = \langle A u, \bar{u} \rangle = \langle u, A^\top \bar{u} \rangle = \langle u, A \bar{u} \rangle

となり、2つの式の左辺は等しいことがわかる。2つの式の辺々を差し引くと

0=λ⟨uˉ,u⟩−λˉ⟨u,uˉ⟩  ⟺  (λ−λˉ)⟨u,uˉ⟩=00 = \lambda \langle \bar{u}, u \rangle - \bar{\lambda} \langle u, \bar{u} \rangle \\ \iff (\lambda - \bar{\lambda}) \langle u, \bar{u} \rangle = 0

となる。固有ベクトルは0ではないから⟨u,uˉ⟩=∣u1∣2+⋯+∣un∣2>0\langle u, \bar{u} \rangle = |u_1|^2 + \cdots + |u_n|^2 > 0であり、したがってλ=λˉ\lambda = \bar{\lambda}であり、ゆえにλ\lambdaは実数である。

固有ベクトルは連立1次方程式

(λI−A)u=0(\lambda I - A) u = 0

の解であり、係数がすべて実数であるから解も実数である。

対称行列の固有ベクトルは直交する

証明

対称行列AAの2つの異なる固有値をλ1,λ2\lambda_1, \lambda_2、対応する固有ベクトルをu1,u2u_1, u_2とする。

Au1=λ1u1,Au2=λ2u2Au_1 = \lambda_1 u_1, \quad Au_2 = \lambda_2 u_2

第1式をu2u_2と内積をとり、第2式をu1u_1と内積をとると

⟨u2,Au1⟩=⟨u2,λ1u1⟩,⟨u1,Au2⟩=⟨u1,λ2u2⟩\langle u_2, A u_1 \rangle = \langle u_2, \lambda_1 u_1 \rangle , \quad \langle u_1, A u_2 \rangle = \langle u_1, \lambda_2 u_2 \rangle

AAは対称行列なので

⟨u2,Au1⟩=⟨Au1,u2⟩(内積の左右を入れ替え)=⟨u1,A⊤u2⟩(内積と転置の定理により)=⟨u1,Au2⟩(Aは対称行列のためA⊤=A)\begin{aligned} \langle u_2, A u_1 \rangle &= \langle A u_1, u_2 \rangle \quad (内積の左右を入れ替え) \\ &= \langle u_1, A^\top u_2 \rangle \quad (内積と転置の定理により) \\ &= \langle u_1, A u_2 \rangle \quad (Aは対称行列のためA^\top=A) \end{aligned}

となる。そのため上の2つの式の辺々を差し引くと

⟨u2,λ1u1⟩−⟨u1,λ2u2⟩=0  ⟺  λ1⟨u2,u1⟩−λ2⟨u1,u2⟩=0  ⟺  (λ1−λ2)⟨u1,u2⟩=0\begin{aligned} & \langle u_2, \lambda_1 u_1 \rangle - \langle u_1, \lambda_2 u_2 \rangle = 0\\ \iff & \lambda_1 \langle u_2, u_1 \rangle - \lambda_2 \langle u_1, u_2 \rangle = 0\\ \iff & (\lambda_1 - \lambda_2) \langle u_1, u_2 \rangle = 0\\ \end{aligned}

λ1−λ2≠0\lambda_1 - \lambda_2 \neq 0であるから、⟨u1,u2⟩=0\langle u_1, u_2 \rangle = 0であり、u1,u2u_1, u_2は互いに直交している

対称行列の対角化

証明
AU=A(u1u2⋯un)=(Au1Au2⋯Aun)=(λ1u1λ2u2⋯λnun)=(u1u2⋯un)(λ1λ2⋱λn)=U(λ1λ2⋱λn)\begin{aligned} \boldsymbol{A} \boldsymbol{U} &= \boldsymbol{A} \begin{pmatrix} \boldsymbol{u}_1 & \boldsymbol{u}_2 & \cdots & \boldsymbol{u}_n \end{pmatrix} \\ &= \begin{pmatrix} \boldsymbol{A} \boldsymbol{u}_1 & \boldsymbol{A} \boldsymbol{u}_2 & \cdots & \boldsymbol{A} \boldsymbol{u}_n \end{pmatrix} \\ &= \begin{pmatrix} \lambda_1 \boldsymbol{u}_1 & \lambda_2 \boldsymbol{u}_2 & \cdots & \lambda_n \boldsymbol{u}_n \end{pmatrix} \\ &= \begin{pmatrix} \boldsymbol{u}_1 & \boldsymbol{u}_2 & \cdots & \boldsymbol{u}_n \end{pmatrix} \begin{pmatrix} \lambda_1 & & & \\ & \lambda_2 & & \\ & & \ddots & \\ & & & \lambda_n \end{pmatrix} \\ &= \boldsymbol{U} \begin{pmatrix} \lambda_1 & & & \\ & \lambda_2 & & \\ & & \ddots & \\ & & & \lambda_n \end{pmatrix} \end{aligned}

に左からU⊤U^\topをかけると得られる

対称行列の固有値分解(スペクトル分解)

証明
AU=A(u1u2⋯un)=(Au1Au2⋯Aun)=(λ1u1λ2u2⋯λnun)=(u1u2⋯un)(λ1λ2⋱λn)=U(λ1λ2⋱λn)\begin{aligned} \boldsymbol{A} \boldsymbol{U} &= \boldsymbol{A} \begin{pmatrix} \boldsymbol{u}_1 & \boldsymbol{u}_2 & \cdots & \boldsymbol{u}_n \end{pmatrix} \\ &= \begin{pmatrix} \boldsymbol{A} \boldsymbol{u}_1 & \boldsymbol{A} \boldsymbol{u}_2 & \cdots & \boldsymbol{A} \boldsymbol{u}_n \end{pmatrix} \\ &= \begin{pmatrix} \lambda_1 \boldsymbol{u}_1 & \lambda_2 \boldsymbol{u}_2 & \cdots & \lambda_n \boldsymbol{u}_n \end{pmatrix} \\ &= \begin{pmatrix} \boldsymbol{u}_1 & \boldsymbol{u}_2 & \cdots & \boldsymbol{u}_n \end{pmatrix} \begin{pmatrix} \lambda_1 & & & \\ & \lambda_2 & & \\ & & \ddots & \\ & & & \lambda_n \end{pmatrix} \\ &= \boldsymbol{U} \begin{pmatrix} \lambda_1 & & & \\ & \lambda_2 & & \\ & & \ddots & \\ & & & \lambda_n \end{pmatrix} \end{aligned}

の両辺に右からU⊤\boldsymbol{U}^{\top}をかけると得られる。

2次形式の標準形

固有ベクトルの行列UU と変数xxの線形結合を x′=U⊤x\boldsymbol{x}' = \boldsymbol{U}^\top \boldsymbol{x} と書く。 これは左からU\boldsymbol{U}をかけてx=Ux′\boldsymbol{x} = \boldsymbol{U} \boldsymbol{x}'と書くこともできる。

このとき、2次形式(x,Ax)(\boldsymbol{x}, \boldsymbol{A} \boldsymbol{x})は次のように変形できる

(x,Ax)=(Ux′,AUx′)=(x′,U⊤AUx′)=(x′,(λ1⋱λn)x′)=λ1x1′2+λ2x2′2+⋯+λnxn′2\begin{aligned} (\boldsymbol{x}, \boldsymbol{A} \boldsymbol{x}) & =\left(\boldsymbol{U} \boldsymbol{x}^{\prime}, \boldsymbol{A} \boldsymbol{U} \boldsymbol{x}^{\prime}\right)=\left(\boldsymbol{x}^{\prime}, \boldsymbol{U}^{\top} \boldsymbol{A} \boldsymbol{U} \boldsymbol{x}^{\prime}\right)=\left(\boldsymbol{x}^{\prime},\left(\begin{array}{lll} \lambda_1 & & \\ & \ddots & \\ & & \lambda_n \end{array}\right) \boldsymbol{x}^{\prime}\right) \\ & =\lambda_1{x_1^{\prime}}^2+\lambda_2{x_2^{\prime}}^2+\cdots+\lambda_n x_n^{\prime 2} \end{aligned}

このような変数の2乗の線形結合を2次形式の 標準形 と呼ぶ

標準形にすると何が嬉しいのか?

標準形はx′y′x'y'の項がなく2乗の項だけになっている。

例えば

2x′2+7y′2=12 {x^{\prime}}^2 + 7 {y^{\prime}}^2 = 1

があるとする。これを書き換えると

x′2(1/2)2+y′2(1/7)2=1\frac{x^{\prime 2}}{(1 / \sqrt{2})^2}+\frac{y^{\prime 2}}{(1 / \sqrt{7})^2}=1

となる。これは楕円の方程式と同じ形。

楕円の標準形方程式
x2a2+y2b2=1\frac{x^2}{a^2}+\frac{y^2}{b^2}=1
  • aa は 長軸半径(楕円の長い方の軸の半分)

  • bb は 短軸半径(楕円の短い方の軸の半分)

Source
<Figure size 400x300 with 1 Axes>

標準形にする前の形

6x2+4xy+3y2=16 x^2 + 4xy + 3y^2 = 1

も同様に楕円となっている。

Source
<Figure size 300x300 with 1 Axes>

x=Ux′x= Ux' は x′x'をUUだけ回転させたもの。あるいはxxをU−1U^{-1}だけ回転させたものがx′x'となっている。

UUは直交行列なので、回転と鏡映をあわせた写像 ( 広義回転 )である。

「合同」とは形が変わらないこと、つまり広義回転だけをすること。

xyxy座標系をUUだけ回転すると、長軸と短軸に一致する。

単位ベクトルe1,e2e_1,e_2をU=(u1,u2)U = (u_1, u_2)で回転させると、Ue1=u1,Ue2=u2Ue_1 = u_1, Ue_2 = u_2なので、固有ベクトルu1,u2u_1,u_2は楕円の長軸と短軸(2つを合わせて 主軸 という)の方向ということ。

AAの固有ベクトルは、 楕円(x,Ax)=1(x, Ax) = 1の主軸方向である ということ。

Source
<Figure size 400x400 with 1 Axes>

正値対称行列と正値2次形式

2次形式と固有ベクトル・固有値

証明

xxが単位ベクトルならx′x'も単位ベクトルであり、∑i=1nxi′2=1\sum_{i=1}^n x_i^{\prime 2}=1である。また固有値を大きい順にλ1≥λ2≥⋯≥λn\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_nとおくと、次の関係が成り立つ。

(x,Ax)=∑i=1nλixi′2≤∑i=1nλ1xi′2=λ1∑i=1nxi′2=λ1(\boldsymbol{x}, \boldsymbol{A} \boldsymbol{x})=\sum_{i=1}^n \lambda_i x_i^{\prime 2} \leq \sum_{i=1}^n \lambda_1 x_i^{\prime 2}=\lambda_1 \sum_{i=1}^n x_i^{\prime 2}=\lambda_1

等号はx1′=1,x2′=⋯=xn′=0x_1^{\prime} = 1, x_2^{\prime}= \cdots = x_n^{\prime} = 0の場合に成立する。

x=Ux′=x1′u1+x2′u2+⋯+xn′unx = Ux' = x_1^{\prime} u_1 + x_2^{\prime} u_2 + \cdots + x_n^{\prime} u_n

であるから、x1′=1,x2′=⋯=xn′=0x_1^{\prime} = 1, x_2^{\prime}= \cdots = x_n^{\prime} = 0に対してはx=u1x = u_1 すなわち最大固有値λ1\lambda_1に対する単位固有ベクトルに等しい。

証明

xxが単位ベクトルならx′x'も単位ベクトルであり、∑i=1nxi′2=1\sum_{i=1}^n x_i^{\prime 2}=1である。また固有値を大きい順にλ1≥λ2≥⋯≥λn\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_nとおくと、次の関係が成り立つ。

(x,Ax)=∑i=1nλixi′2≥∑i=1nλnxi′2=λn∑i=1nxi′2=λn(\boldsymbol{x}, \boldsymbol{A} \boldsymbol{x})=\sum_{i=1}^n \lambda_i x_i^{\prime 2} \geq \sum_{i=1}^n \lambda_n x_i^{\prime 2} =\lambda_n \sum_{i=1}^n x_i^{\prime 2} =\lambda_n

等号はx1′=x2′=⋯=xn−1′=0,xn′=1x_1^{\prime} = x_2^{\prime} = \cdots = x_{n-1}^{\prime} = 0, x_n^{\prime} = 1の場合に成立する。

x=Ux′=x1′u1+x2′u2+⋯+xn′unx = Ux' = x_1^{\prime} u_1 + x_2^{\prime} u_2 + \cdots + x_n^{\prime} u_n

であるから、x1′=⋯=xn−1′=0,xn′=1x_1^{\prime} = \cdots = x_{n-1}^{\prime} = 0, x_n^{\prime} = 1に対してはx=unx = u_n すなわち最小固有値λn\lambda_nに対する単位固有ベクトルに等しい。

正定値と半正定値

証明

2次形式(x,Ax)(x, Ax)は標準形

(x,Ax)=λ1x1′2+⋯+λnxn′2(x, Ax) = \lambda_1{x_1^{\prime}}^2+\cdots+\lambda_n x_n^{\prime 2}

で表すことができる。

1. 固有値がすべて正 ⇒ (x,Ax)>0(x, Ax)>0

固有値λ1,…,λn\lambda_1,\dots,\lambda_nがすべて正なら、任意のx′≠0x' \neq \boldsymbol{0}に対しては(x,Ax)=λ1x1′2+⋯+λnxn′2>0(x, Ax) = \lambda_1{x_1^{\prime}}^2+\cdots+\lambda_n x_n^{\prime 2}>0となる。 したがって任意のx=Ux′≠0x = Ux' \neq 0に対して(x,Ax)>0(x, Ax)>0となる。

2. (x,Ax)>0(x, Ax)>0 ⇒ 固有値がすべて正

逆に任意のx≠0x \neq 0に対して2次形式の標準形

(x,Ax)=λ1x1′2+⋯+λnxn′2(x, Ax) = \lambda_1{x_1^{\prime}}^2+\cdots+\lambda_n x_n^{\prime 2}

が成り立つなら、任意のx′=U⊤x≠0x' = U^\top x \neq 0に対して(x,Ax)>0(x, Ax)>0となる。

ベクトルx′x'のうち任意のii番目の要素が1なら、つまり

x1′=x2′=⋯=xi−1′=0,xi′=1,xi+1′=xi+2′=⋯=xn=0x_1^{\prime}=x_2^{\prime}=\cdots=x_{i-1}^{\prime}=0, x_i^{\prime}=1, x_{i+1}^{\prime}=x_{i+2}^{\prime}=\cdots=x_n=0

とすると (x,Ax)=λi>0(x, Ax) = \lambda_i > 0 より λi>0\lambda_i>0である。

(「任意のx≠0x\neq 0に対して(x,Ax)>0(x, Ax)>0」という仮定により)任意のiiに対してこれが成り立つため、 λ1,λ2,…,λn\lambda_1, \lambda_2, \ldots, \lambda_n はすべて正である