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.

2次形式と定値性

2次形式

変数の2次の項のみからなる式を 2次形式(quadratic form) と呼ぶ。nn変数x1,…,xnx_1,\dots,x_nの2次形式は次のように書ける

f=a11x12+a22x22+⋯+annxn2+2a12x1x2+2a13x1x3+⋯+2an(n−1)xnxn−1f = a_{11} x_1^2+a_{22} x_2^2+\cdots+a_{n n} x_n^2+2 a_{12} x_1 x_2+2 a_{13} x_1 x_3+\cdots+2 a_{n(n-1)} x_n x_{n-1}\\

2次形式の別表記

これは次のように表すこともできる。

f=∑i=1n∑j=1naijxixjf = \sum_{i=1}^n \sum_{j=1}^n a_{i j} x_i x_j

ただし、aij=ajia_{ij} = a_{ji}とする。

例:n=2n=2の場合
f=a11x12+a22x22+2a12x1x2=a11x12+a12x1x2+a21x1x2+a22x22=∑i=12∑j=12aijxixj\begin{aligned} f &= a_{11} x_1^2 + a_{22} x_2^2 + 2 a_{12} x_1 x_2 \\ &= a_{11} x_1^2 + a_{12} x_1 x_2 + a_{21} x_1 x_2 + a_{22} x_2^2 \\ &= \sum_{i=1}^2 \sum_{j=1}^2 a_{i j} x_i x_j \end{aligned}

2次形式の行列表記

行列

A=(a11⋯a1n⋮⋱⋮an1⋯ann),x=(x1⋮xn)\boldsymbol{A}=\left(\begin{array}{ccc} a_{11} & \cdots & a_{1 n} \\ \vdots & \ddots & \vdots \\ a_{n 1} & \cdots & a_{n n} \end{array}\right), \quad \boldsymbol{x}=\left(\begin{array}{c} x_1 \\ \vdots \\ x_n \end{array}\right)

がaij=ajia_{ij} = a_{ji}のとき、すなわちAAが対称行列のとき、2次形式は次のようなベクトルの内積として表せる

f=(x,Ax)f = ( \boldsymbol{x}, \boldsymbol{Ax} )

このときAAを2次形式ffの 係数行列 と呼ぶ。

例
f=((xy),(abbc)(xy))=((xy),(ax+bybx+cy))=x(ax+by)+y(bx+cy)=ax2+2bxy+cy2f =\left(\binom{x}{y},\left(\begin{array}{ll} a & b \\ b & c \end{array}\right)\binom{x}{y}\right) = \left(\binom{x}{y},\binom{a x+b y}{b x+c y}\right)=x(a x+b y)+y(b x+c y)=a x^2+2 b x y+c y^2

2次形式の係数は対称行列で表せる

2次形式の係数行列は対称行列で表すことができる。そのほうがシンプルになるし、対称行列で表せるという定理もある。

例えば

A=(0a−a0),B=(02−1−2041−40)A = \begin{pmatrix} 0 & a\\ -a & 0 \end{pmatrix} ,\quad B = \begin{pmatrix} 0 & 2 & -1\\ -2 & 0 & 4\\ 1 & -4 & 0 \end{pmatrix}

は反対称行列である。

ここで As=12(A+A⊤)A_s = \frac{1}{2} (A + A^\top) は対称行列、Aa=12(A−A⊤)A_a = \frac{1}{2} (A - A^\top) は反対称行列となっている。

例
A=(a11a12a21a22)A = \begin{pmatrix} a_{11} & a_{12}\\ a_{21} & a_{22} \end{pmatrix}

とすると、その転置行列は

A⊤=(a11a21a12a22)A^\top = \begin{pmatrix} a_{11} & a_{21}\\ a_{12} & a_{22} \end{pmatrix}

なので

A+A⊤=(2a11a12+a21a21+a122a22)A−A⊤=(0a12−a21a21−a120)=(0a12−a21−(a12−a21)0)\begin{aligned} A + A^\top &= \begin{pmatrix} 2 a_{11} & a_{12} + a_{21}\\ a_{21} + a_{12} & 2 a_{22} \end{pmatrix} \\ A - A^\top &= \begin{pmatrix} 0 & a_{12} - a_{21}\\ a_{21} - a_{12} & 0 \end{pmatrix} = \begin{pmatrix} 0 & a_{12} - a_{21}\\ - (a_{12} - a_{21}) & 0 \end{pmatrix} \end{aligned}

よって

(A+A⊤)+(A−A⊤)=(2a11a12+a21a21+a122a22)+(0a12−a21a21−a120)=(2a112a122a212a22)(A + A^\top) + (A - A^\top) = \begin{pmatrix} 2 a_{11} & a_{12} + a_{21}\\ a_{21} + a_{12} & 2 a_{22} \end{pmatrix} + \begin{pmatrix} 0 & a_{12} - a_{21}\\ a_{21} - a_{12} & 0 \end{pmatrix} = \begin{pmatrix} 2 a_{11} & 2 a_{12}\\ 2 a_{21} & 2 a_{22} \end{pmatrix}
証明

1. (x,Ax)=0(x, A x) = 0ならばAAは反対称行列

xxを第ii要素が1で残りが0のベクトルとし、(x,Ax)=0(x, Ax) = 0に代入すると、aii=0a_{ii}=0となる。そのためAAの対角要素は0となることがわかる。

xxを第ii要素と第j (j≠i)j ~ (j \neq i)要素が1で残りが0のベクトルを代入すると、aii+aij+aji+ajj=0a_{ii} + a_{ij} + a_{ji} + a_{jj} = 0となるが、対角要素は0なのでaij+aji=0a_{ij}+a_{ji}=0すなわちaij=−ajia_{ij} = -a_{ji}となり、AAは反対称行列となる。

2. AAが反対称行列なら(x,Ax)=0(x, A x) = 0

AAが反対称行列なら対角要素はゼロ(aii=0a_{ii} = 0)であるため、2次形式(x,Ax)(x, Ax)のうちxi2x_{i}^2の項はaiixi2=0a_{ii} x_{i}^2 = 0となる。

また非対角要素はaij=−ajia_{ij} = -a_{ji}より、2次形式のうちxixjx_i x_jの項はaijxixj+ajixjxi=0a_{ij} x_i x_j + a_{ji} x_j x_i = 0 と打ち消し合って0になる。

以上から次の定理が導かれる

証明

反対称行列AaA_aを係数とする2次形式は0なので、

(x,Ax)=(x,(As+Aa)x)=(x,Asx)+(x,Aax)=(x,Asx)\begin{aligned} (x, Ax) &= (x, (A_s + A_a) x)\\ &= (x, A_s x) + (x, A_a x)\\ &= (x, A_s x) \\ \end{aligned}

関連する定理

転置と内積についての定理

証明
(x,A⊤y)=∑i,j=1najixiyj=∑j=1n(∑i=1najixi)yj=(Ax,y)\left(\boldsymbol{x}, \boldsymbol{A}^{\top} \boldsymbol{y}\right)=\sum_{i, j=1}^n a_{j i} x_i y_j=\sum_{j=1}^n\left(\sum_{i=1}^n a_{j i} x_i\right) y_j=(\boldsymbol{A} \boldsymbol{x}, \boldsymbol{y})

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}をかけると得られる。

対称行列の分解の応用例:リッジ推定量が正則となる証明

XXはnn次の実行列とする。実対称行列X⊤XX^\top Xは非負値定符号行列であるため、

X⊤X=PΓP⊤X^\top X = P \Gamma P^\top

と分解可能。ここでPPは直交行列であり、Γ=diag(γ1,⋯ ,γn)\Gamma = \mathrm{diag}(\gamma_1, \cdots, \gamma_n)はX⊤XX^\top Xの固有値(γ1≥⋯≥γn≥0\gamma_1 \geq \cdots \geq \gamma_n \geq 0)を対角成分にもつ対角行列。

もしγn=0\gamma_n = 0ならX⊤XX^\top Xの逆行列は存在せず、γn>0\gamma_n > 0なら逆行列は存在し、

(X⊤X)−1=(PΓP⊤)−1=PΓ−1P⊤(∵(ABC)−1=(C−1B−1A−1)であり、Pは直交行列なのでP⊤=P−1)=Pdiag⁡(1/γ1,…,1/γn)P⊤\begin{aligned} (X^\top X)^{-1} &= (P \Gamma P^\top)^{-1}\\ &= P \Gamma^{-1} P^\top \quad (\because (ABC)^{-1} = (C^{-1} B^{-1} A^{-1}) であり、 Pは直交行列なのでP^\top = P^{-1})\\ &= P \operatorname{diag}(1 / \gamma_1, \ldots, 1 / \gamma_n) P^\top \end{aligned}

となる。X⊤XX^\top Xの最小固有値がγn→0\gamma_n \to 0の場合、1/γn→∞1/\gamma_n \to \inftyになり逆行列が計算できない。

一方、リッジ推定量のようにX⊤X+λIX^\top X + \lambda Iとする(λ∈R\lambda \in\mathbb{R})と、その逆行列は

(X⊤X+λI)−1=(PΓP⊤+λI)−1={P(Γ+λI)P⊤}−1=P(Γ+λI)−1P⊤=Pdiag⁡[1/(γ1+λI),…,1/(γn+λI)]P⊤\begin{aligned} (X^\top X + \lambda I)^{-1} &= (P \Gamma P^\top + \lambda I)^{-1}\\ &= \{ P (\Gamma + \lambda I) P^\top \}^{-1}\\ &= P (\Gamma + \lambda I)^{-1} P^\top\\ &= P \operatorname{diag}[1 / (\gamma_1 + \lambda I), \ldots, 1 / (\gamma_n + \lambda I)] P^\top \end{aligned}

となる。こちらはγn→0\gamma_n \to 0の場合であっても1/(γp+λI)1 / (\gamma_p + \lambda I)は無限大に発散することがないため、X⊤X+λIX^\top X + \lambda Iは正則となる。

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次形式の 標準形 と呼ぶ

例
f=6x2+4xy+3y2f = 6 x^2 + 4xy + 3y^2

を標準形にしたいとする。ffはベクトルと行列を用いると次のように書き直すことができる。

f=((xy),(6223)(xy))f=\left(\binom{x}{y},\left(\begin{array}{ll} 6 & 2 \\ 2 & 3 \end{array}\right)\binom{x}{y}\right)

係数行列

A=(6223)A= \left(\begin{array}{ll} 6 & 2 \\ 2 & 3 \end{array}\right)

の固有値は

∣λI−A∣=0  ⟺  ∣λ−622λ−3∣=0  ⟺  (λ−6)(λ−3)−4=0  ⟺  λ2−9λ+18−4=0  ⟺  λ2−9λ+14=0  ⟺  (λ−2)(λ−7)=0\begin{aligned} & |\lambda I - A | = 0 \\ \iff & \left|\begin{array}{cc} \lambda - 6 & 2 \\ 2 & \lambda - 3 \end{array}\right| = 0 \\ \iff & (\lambda - 6)(\lambda - 3) - 4 = 0\\ \iff & \lambda^2 - 9 \lambda + 18 - 4 = 0\\ \iff & \lambda^2 - 9 \lambda + 14 = 0\\ \iff & (\lambda - 2)(\lambda - 7) = 0\\ \end{aligned}

より、λ=2,7\lambda = 2, 7となる。

f=(x,Ax)=λ1x′2+λ2y′2\begin{aligned} f = (\boldsymbol{x}, \boldsymbol{A} \boldsymbol{x}) & =\lambda_1 {x^{\prime}}^2 + \lambda_2{y^{\prime}}^2\\ \end{aligned}

より、ffの標準形は

f=2x′2+7y′2f = 2 {x^{\prime}}^2 + 7 {y^{\prime}}^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次形式(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(x, Ax) = \lambda_i より λ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 はすべて正である。

証明

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

固有値 λ1,λ2,…,λn\lambda_1, \lambda_2, \ldots, \lambda_n が正または0なら、任意の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} \geq 0

となる。 したがって任意のx=Ux′≠0x = Ux' \neq 0に対して(x,Ax)≥0(x, Ax)\geq 0となる。

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

逆に任意のx≠0x \neq 0に対して(x,Ax)≥0(x, Ax)\geq 0が成り立つ場合、

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(x, Ax) = \lambda_i より λi≥0\lambda_i \geq 0である。

任意のiiに対してこれが成り立つため、 λ1,λ2,…,λn\lambda_1, \lambda_2, \ldots, \lambda_n はすべて正である。