本記事の内容
本記事はヘッセ行列の符号によって極値が判定できるという定理を明示、証明する記事です。
本記事を読むにあたり実対称行列の符号と行列式の性質について知っている必要があるため、以下の記事も合わせてご覧ください。
↓実対称行列の符号の記事
↓行列式の記事
本記事で言いたいことと前回の軽い復習
本記事では次の定理を証明することが目標です。
定理0.(ヘッセ行列の符号による極値の判定)
ΩΩがRnの開集合、f:Ω→RがC2級、a∈Ω、f′(a)=0、H(a)はfのaにおけるヘッセ行列とする。このとき、以下の3つが成り立つ。- H(a)が正値⇒fはaで狭義の極小となる。
- H(a)が負値⇒fはaで狭義の極大となる。
- H(a)が不定符号⇒fはaで極値を取らない。
ここで、極値とは以下でした。
A⊂Rn、f:A→R、a∈Aとする。
- 極大 fがaで極大とは (∃ε>0) s.t. f(a)=maxx∈A∩B(a;ε)f(x)=maxx∈A‖x−a‖<εf(x) が成り立つことをいう。また、fがaで狭義の極大とは、 (∃ε>0) s.t. [(∀x∈A:0<‖x−a‖<ε)⇒f(a)>f(x)] が成り立つことをいう。
- 極小 fがaで極小とは (∃ε>0) s.t. f(a)=minx∈A∩B(a;ε)f(x)=minx∈A‖x−a‖<εf(x) が成り立つことをいう。また、fがaで狭義の極小とは、 (∃ε>0) s.t. [(∀x∈A:0<‖x−a‖<ε)⇒f(a)<f(x)] が成り立つことをいう。
また、ヘッセ行列とは以下でした。
ヘッセ行列(Hesse行列、ヘシアン)
C2級の関数fに対して、 H(x)=(∂2f∂xi∂xj(x)) とおき、これをfのxにおけるヘッセ行列(Hesse行列、ヘシアン)と呼ぶ。さらに、正値、負値、不定符号とは以下でした。
実対称行列の正値性、負値性、不定符号
A=(aij)を(n,n)型の実対称行列とする。このとき- Aが正値であるとは、Aの固有値が全て正であるときをいう。
- Aが負値であるとは、Aの固有値が全て負であるときをいう。
- Aが不定符号であるとは、Aの固有値に正のもの、負のものがあるときをいう。
さて、多変数のテイラーの定理により、f′(a)h=0のとき、
f(a+h)=f(a)+12(H(a+θh)h,h)
と書けるのでした。
ということは、(H(a+θh),h)の符号によってf(a)とf(a+h)の大小関係が分かるので、ヘッセ行列の符号を知りたい、という話でした。
実対称行列の符号の判定方法
※薄々お気づきかと思いますが、本記事は7割が線型代数のお話です(笑)。
実対称行列の符号は結局の所固有値の符号でした。
ということは、実対称行列Aの固有方程式φA(t)=0の解の符号を調べることでAの符号が分かります。
しかしながら、固有方程式は解くのが大変な場合が多いです。
3次の固有方程式の時点で既に難しいです。
実は、小行列式の行列式によって、Aの正値性、負値性を判定できるという事実があります。
それを説明するために、首座行列という行列を定めます。
首座行列
なんてことありません。
行列の左上から(k,k)型の行列を引っこ抜いた、その引っこ抜いた行列をk次首座行列といいます。
k次首座行列
正方行列Aを A=(a11a12⋯a1na21a22⋯a2n⋮⋮⋱⋮an1am2⋯ann) と書いたとする。このとき、k=1,…,nに対して Ak=(a11a12⋯a1ka21a22⋯a2k⋮⋮⋱⋮ak1am2⋯akk) をAのk次首座行列という。例えば、こんなのです。
例1. A=(123456789)としたとき、
A1=1,A2=(1245),A3=A=(123456789)
です。
次に、二次形式の標準形について話します。
二次形式の標準形
二次形式x⊤Axに対して、Aは対称行列なので、適切な直交行列Pでもって対角化できます。
そこで、mx=Pyとすると、
x⊤Ax=(y⊤P⊤)APy=α1y21+α2y22+⋯+αny2n
となります。
ただし、α1,α2,…,αnはAの重複を含めた固有値です。
さらに、これらを並び替えて
α1,α2,…,αp>0,αp+1,αp+2,…,αp+q<0,αp+q+1,αp+q+2,…,αn=0
とします。
ちなみに、p+qはAのランクです。
さらに、変数を以下のように変換してみます。
yi=1√αizi(1≤i≤p)yj=1√−αjzj(p+1≤j≤p+q)
このとき、
x⊤Ax=z21+z22+⋯+z2p−z2p+1−⋯−z2p+q
となります。
これを二次形式x⊤Axの標準形と呼びます。
首座行列の行列式の符号で正値性、負値性を判定できます。
では、主張を明示して証明します。
定理2.(首座小行列式の符号による正値性、負値性の判定)
n次実対称行列A=(aij)に対して、AkをAのk次首座行列とするとき、以下の1.および2.が成り立つ。- Aが正値 ⟺ (∀k∈{1,…,n}) det(Ak)>0。
- Aが負値 ⟺ (∀k∈{1,…,n}) (−1)kdet(Ak)>0(すなわち、det(A1),det(A2),…,det(An)の符号が交互に負、正、負、正、…)
定理2.の証明
(1.の証明)
1-①(⇒)の証明
Aが正値だとします。
k∈{1,…,n}、x∈Rkとするとき、x′=(x,0,…,0)∈Rn (0がn−k個並んでいる)とすると、
(Akx,x)=(Ax′,x′)
です。
x≠0とすると、x′≠0ですから、Aが正値であることから、
(Akx,x)=(Ax′,x′)>0
です。
ただし、次の事実を使いました。
定理3.(実対称行列の符号と2次形式の符号)
A=(aij)がn次実対称行列とするとき、次の1.、2.、3.が成り立つ。- Aが正値 ⟺ ∀h∈Rn∖{0}に対して、(Ah,h)>0。
- Aが負値 ⟺ ∀h∈Rn∖{0}に対して、(Ah,h)<0。
- Aが不定符号 ⟹ (∃h,h′∈Rn) s.t. (Ah,h)>0, (Ah,h)<0。
定理3.の証明は【解析学の基礎シリーズ】偏微分編 その8を御覧ください。
さて、(Ax′,x′)>0なのですから、Akもまた正値です。
ということは、Akの固有値をλ(k)j (j=1,…,k)と書いたときに、λ(k)j>0ですから、
det(Ak)=k∏j=1λ(k)j>0
です。
ちなみに、なぜ、det(Ak)=k∏j=1λ(k)jと書けるか、ということですが、以下の3つが成り立っているからです。
定理4.
n次実正方行列Aに対して、次の2つの条件は同値である。- Aは対称行列である。
- Aは適当な直交行列Pによって対角化できる。 すなわち、 P−1AP=(λ1O⋱Oλn) である。
定理4.の証明は【線型代数学の基礎シリーズ】固有値編 その4を御覧ください。
定理5.
n次正方行列AおよびBが相似であれば、 φA(t)=φB(t) である。従って、AとBの固有値全体は重複を込めて一致する。定理5.の証明は【線型代数学の基礎シリーズ】固有値編 その1を御覧ください。
命題6.
n次上三角行列Aの行列式det(A)はAの対角成分の積に等しい。すなわち、次が成り立つ。 det(A)=a11a22…ann命題6.の証明は【線型代数学の基礎シリーズ】行列式編 その2を御覧ください。
1-②(⇐)の証明
「任意のn次実対称行列Aに対して、det(Ak)>0 (k=1,…,n)ならば、Aは正値である」ことをnに関する数学的帰納法で証明します。
n=1のとき、A1=a11について、det(A1)=a11ですから、det(A1)>0であれば、a11>0で、かつA1の固有値はa11そのものですから、A1は正値です。
n−1のときに成り立つとします。
Aはn次実対称行列で、det(Ak)>0 (k=1,…,n)を満たすとして、An−1は正値です。
ここで、Aを以下のようにブロック分けします。
A=(An−1bb⊤c)
ただし、bは(n−1,1)型のベクトルです。
ここで、An−1は正値なので、先程示したことからdet(An−1)>0によりdet(An−1)≠0なので、An−1には逆行列A−1n−1が存在することに注意して、
P=(In−1A−1n−1b0⊤1),B=(An−100⊤c−b⊤A−1n−1b),
とします。
ただし、In−1はn−1次の単位行列です。
このとき、
P⊤BP=A
です。
実際、
P⊤BP=(In−10(A−1n−1b)⊤1)(An−100⊤c−b⊤A−1n−1b)(In−1A−1n−1b0⊤1)=(In−10b⊤A−1n−11)(An−100⊤c−b⊤A−1n−1b)(In−1A−1n−1b0⊤1)=(An−10b⊤c−b⊤A−1n−1b)(In−1A−1n−1b0⊤1)=(An−1bb⊤b⊤A−1n−1b+c−b⊤A−1n−1b)=(An−1bb⊤c)=A
です。
ここで、1つ補題を考えます。
補題7.(シルベスタの慣性法則)
二次形式の標準形は一意的に定まる。すなわち、変数にどんな線型変換を施して標準形に写しても、正負の項の数p,qは一定である。補題7.の証明
2通りの変数変換
x=Py,x=Qz
によって、二通りの標準形
x⊤Ax=y21+y22+⋯+y2p−y2p+1−⋯−y2p+q=z21+z22+⋯+z2s−z2s+1−⋯−z2s+t
を得たとしましょう。
このとき、p+q=s+t=rank(A)です。
p>sだとして矛盾を導きます(背理法!)。
x1,x2,…,xnに関する斉次一次方程式系
yi=0(i=p+1,p+2,…,n)zj=0(j=1,2,…,s)
は自明でない解a1,a2,…,anを持ちます。
実際、方程式の個数はn−p+sであり、変数の数nよりも小さいからです。
P−1(a1a2⋮⋮⋮⋮an)=(b1b2⋮bp0⋮0),Q−1(a1a2⋮⋮⋮⋮an)=(0⋮0cs+1⋮⋮cn)
の形をしているので、
b21+b22+⋯+b2p=−c2s+1−c2s+2−⋯−c2n
です。
従って、b1=b2=⋯=bp=0となって、a1,a2,…,anが自明でない解であることに矛盾します。
従って、p=sでなければなりません。
補題7.の証明終わり
では、定理2.の証明に戻ります。
今、
P⊤BP=A
となって、補題7.からP⊤BPの正値性、負値性とAの正値性、負値性は一致しているので、P⊤BP=Aの正値性をしょうめいできれば良いことになります。
ここでもう一個補題を与えます。
補題8.
対称行列の逆行列もまた対称行列である。すなわち、 A⊤,det(A)≠0⟺(A−1)⊤=A−1 である。補題8.の証明
Aが対称かつ正則だとしましょう。
このとき、AA−1=A−1A=Iの転置を取れば、(A−1)⊤A⊤=A⊤(A−1)⊤=Iです。
Aが対称であることから、(A−1)⊤A=A(A−1)⊤=Iです。
すなわち、(A−1)⊤=A−1です。
補題8.の証明終わり
では、定理2.の証明に戻ります。
今、det(P)=1であることに注意すると、補題8.から
det(A)=det(An−1)⋅(c−b⊤A−1n−1b)
です。
det(A)>0、det(An−1)>0により、c−b⊤A−1n−1b>0です。
x=(x1,…,xn)⊤∈Rnに対して、x′=(x1,…,xn)⊤とすると、
(Bx,x)=(An−1x′,x′)+(c−b⊤A−1n−1b)x2n
です。
x≠0により、x′≠0またはxn≠0であることに注意すると、(Bx,x)>0です。
従って定理3.からBは正値です。
(2.の証明)
Aが負値である、ということは−Aが正値、ということですので、上記の証明のAを−Aに置き換えて全く同じ議論で証明することができます。
従って、ここでは省略します。
定理2.の証明終わり
実際に首座行列の行列式の符号で正値性、負値性を判定してみます。
例9. A=(211121112)の正値性、負値性を判定してみます。
まずは真正直に固有値を計算してみると、固有値は4,1,1と分かりますので、Aは正値です。
しかし、3次の正方行列ですので、計算は面倒くさいです。
そこで、首座行列の行列式を計算してみます。
det(A1)=2>0,det(A2)=det(2112)=2⋅2−1⋅1=3>0,det(A3)=det(211121112)=2⋅2⋅2+1⋅1⋅1+1⋅1⋅1−1⋅2⋅1−2⋅1⋅1−2⋅1⋅1=8+1+1−2−2−2=4>0
により、Aが正値であることが分かります。
「え?結局面倒くさくない?」と思うかもしれません。
確かに、そもそも行列式の計算が面倒くさいというのもありますが、固有方程式の解を求めるには行列式を計算して更に因数分解して解を求めます。
つまり、首座行列の行列式を求めるというアプローチは多次方程式を解く、という操作の分だけ楽ちんということです。
ヘッセ行列の符号による極値判定定理の証明
ようやっと本題に入っていきます。
何を示したいか、というと以下でした。
定理0.(ヘッセ行列の符号による極値の判定)(再掲)
ΩがRnの開集合、f:Ω→RがC2級、a∈Ω、f′(a)=0、H(a)はfのaにおけるヘッセ行列とする。このとき、以下の3つが成り立つ。- H(a)が正値⇒fはaで狭義の極小となる。
- H(a)が負値⇒fはaで狭義の極大となる。
- H(a)が不定符号⇒fはaで極値を取らない。
では、証明に入っていきます。
今までは線型代数のお話でしたが、以降は解析のお話が主になってきます。
定理0.の証明
Ωが開集合なので、
(∃ε>0) s.t. B(a;ε)⊂Ω
を満たしています。
ここで、多変数のテイラーの定理を使います。
定理10.(多変数のテイラーの定理)
n,k∈N、ΩをRnの開集合、f:Ω→RをCkの関数、a∈Ω、h∈Rn、線分[a,a+h]⊂Ωとするとき、次の式を満たすような0<θ<1が存在する。 f(a+h)=k−1∑m=01m!(dmf)a(h)+1k!(dkf)a+θh(h). ただし、(dmf)x(h)はfのxにおけるm次微分と呼ばれるhについてのm次形式で、次の式で定められる。 (dmf)x(h)=∑1≤i1,i2,⋯,im≤n∂mf∂xi1∂xi2⋯∂xim(x)hi1hi2⋯him.定理10.(多変数のテイラーの定理)の証明は【解析学の基礎シリーズ】偏微分編 その8を御覧ください。
定理10.から、
(∀h∈R2:‖h‖<ε) (∃θ∈(0,1)) s.t. f(a+h)=f(a)+f′(a)h+12(H(a+θh)h,h)=f(a)+12(H(a+θh)h,h)
です。
(1.の証明)
H(a)が正値であれば、定理2.から
(∀k∈{1,…,n}) det(Hk(a))>0
です。
また、fはC2級ですので、det(H(x))は連続だから、
(∃ε′∈(0,ε)) s.t. (∀h∈Rn:‖h‖<ε′) (∀θ∈(0,1)) det(Hk(a+θh))>0
です。
今、det(Hk(a+θh))>0ということが分かったので、再度定理2.からH(a+θh)は正値です。
故に、h≠0なのであれば、定理3.から(H(a+θhh,h))>0です。
従って、f(a+h)>f(a)となって、fはaで狭義の極小です。
(2.の証明)
1.の証明において、det(Hk(a))>0の部分をdet(Hk(a))<0と書き換えればよいので、省略します。
(3.の証明)
H(a)が不定符号だとしましょう。
このとき、H(a)の固有値の中に正のものと負のものが存在しています。
それをそれぞれλ,μとしましょう。
すなわち、
です。
このとき、λ,μのそれぞれに属する固有ベクトルをu,vと書けば、
H(a)u=λu,H(a)v=μv(u,v∈Rn∖{0})
を満たしています。
ここで、上記のuおよびvは
0<‖u‖<ε,0<‖v‖<ε
を満たしているように取ることができます。
なぜならば、固有ベクトルは実数倍しても固有ベクトルだからです。
さて、
g(t)=f(a+tu),h(t)=f(a+tv)
とすると、
g′(t)=f′(a+tu)u,g′′(t)=(H(a+tu,u)),h′(t)=f′(a+tv)v,h′′(t)=(H(a+tv,v)),g′(0)=f′(a)u,g′′(0)=(H(a,u))=λ(u,u)=λ‖u‖2>0,h′(0)=f′(a)v,h′′(0)=(H(a,v))=μ(v,v)=μ‖v‖2<0,
となります。
g(t) (|t|<1)はt=0で狭義の極小、h(t) (|t|<1)はt=0で狭義の極大です。
従って、変化する方向によって極小となったり極大となったりするので、fはaで極値を取りません。
定理0.の証明終わり
実際に極値を計算して求めてみましょう!
では一緒に極値を計算して求めてみましょう。
例11. f(x,y)=x3+y3−3xyの極値を求めてみます。

まずは導関数を計算します。
f′(x)=∇f(x)=(∂f∂x∂f∂y)=(3x2−y3y2−x)
です。
また、fのヘッセ行列Hは
H=(∂2f∂x2∂2f∂x∂y∂2f∂y∂x∂2f∂y2)=(6x−3−36y)
です。
さて、f′(a)=∇f(a)=0となる点aを求めてみましょう。
∇f(x,y)=0⟺{3x2−3y=03y2−3x=0⟺{x2−y=0y2−x=0⟺{y=x2x4−x=0⟺x=y=0∨x=y=1
つまり、(x,y)=(0,0)と(x,y)=(1,1)でfは極値を取りうる、ということです。
従って、H(0,0)とH(1,1)の正値性、負値性を確認します。
- H(0,0)について
H(0,0)=(6×0−3−36×0)=(0−3−30)
です。
従って、det(H(0,0)1)=0となって正値でも負値でもないため、H(0,0)は不定符号だから、(x,y)=(0,0)では極値を取りません。 - H(1,1)について
H(1,1)=(6×1−3−36×1)=(6−3−36)
です。
従って、
det(H(1,1)1)=6>0,det(H(1,1)2)=6×6−(−3)×(−3)=27>0
となります。
故に、H(1,1)は正値ですので、この点(x,y)=(1,1)でfは極小を取ります。
また具体的な極小値は
f(1,1)=13+13−3×1×1=−1
です。
以上のことから、fは(x,y)=(1,1)で極小値−1を取る、ということが分かります。
読者の皆様のコメントを下さい!
筆者が初めてヘッセ行列による極値判定を学んだとき、「すげえ。行列の正値性、負値性で極値をとりうる定義域の要素の候補が分かるんだあ。」と割と感動しました。
同時に線型代数は解析的な問題を特にあたっての一つの道具的な存在(というと良い気がしない方がいらっしゃるかと思いますが…)でもあるのだなあ。と思いました。
線型代数はなんとも表情豊かでありとあらゆるところでさも当然のように使われます。
さて、余談でしたが、今回読者の皆様にお聞きしたいのが、「どんな定理に感動しましたか?」ということです。
巷ではやれ「オイラーの公式が美しいんだ!」みたいな話をよく聞きます。
確かに「そうだね。きれいだよね。」と思いますが、みんな言ってるのでありがたみが薄れてきている気がします(個人的な話)。
そこで、皆様にいままで出会った定理で「こりゃ凄い!」と思った定理をコメントで教えて下さい!
筆者の場合、1つにしぼるのは難しいですが、オイラーの多面体定理が好きです。
結
今回は、ヘッセ行列の正値性、負値性によって極値判定が可能だ、ということについて証明を与えました。
多次元の場合、極値はいっぱいありますし、そもそも図を描くことすら困難です。
そんな中、ヘッセ行列という行列の符号を観察することで、どこで極値をとるか、ということが分かるという強力な事実です。
それを理解するには、実は線型代数の知識が必要です。
一見解析のお話と思いきや、実は線型代数の手法をフル稼働します。
線型代数が至るところで扱われるという良い例でもあると思います。
次回は、解析学の中でも随一の大事さを誇る逆関数定理のイントロを解説します。
乞うご期待!
質問、コメントなどお待ちしております!
どんな些細なことでも構いませんし、「定理〇〇の△△が分からない!」などいただければ全てお答えします!
お問い合わせの内容にもよりますが、ご質問はおおよそ3日以内にお答えします。
もし直ちに回答が欲しければその旨もコメントでお知らせください。直ちに対応いたします。
Twitterでもリプ、DM問わず質問、コメントを大募集しております!
コメントをする