本記事の内容
本記事はヘッセ行列、実対称行列の正値性、負値性について解説する記事です。
本記事を読むにあたり、全微分と多変数のテイラーの定理を知っている必要があるため、以下の記事も合わせて御覧ください。
↓全微分の記事
↓多変数のテイラーの定理の記事
こんな問題を考えたいのです。
まずは、どんな問題を考えたいのか、ということを述べます。
KをR2内の3点O=(0,0)、A=(1,0)、B=(0,1)、C=(1,1)を頂点とする正方形とします。
すなわち、
K={(x,y)∈R2|0≤x≤1, 0≤y≤1}
とします。
また、
f(x,y)=3x2+2y2+2xy−2x−2y+1
で定めるとき、fの最大値と最小値を求なさい、という問題を考えたいのです。
これはあくまで簡単な例ですので、もっとKが複雑なのもあります。

勿論、上記の図を描ければ「ここで最大値をとって、ここで最小値を取るなあ」と分からんでもないわけですが、描くのは誠に難しいと思います。
さて、「どうしようか?」という話ですが、高校数学でやった方針に則ってみましょう。
そこで、まずは全微分してみます。
f′(x,y)=(∂f∂x ∂f∂y)=(6x+2y−2 4y+2x2)
ここで、f′(x,y)=0としてみます。
すると、
f′(x,y)=0⇔(x,y)=(15,25)
が導けます。
さてさて、ここからどうしたら良いでしょうか。
1変数関数の場合のように増減表は書けません。
そもそも1変数の場合はf′の符号を調べましたが、2変数の場合f′はベクトルですので、「ベクトルの符号を調べるってどういうこと?」となるわけです。
しかしながら、実はすぐ後で証明するのですが、
は多変数関数についても成り立つのです。
加えて、
という主張は多変数関数へ拡張することができます。
では次に「極値とはなんぞや?」ということを説明します。
内点aで極値を取ればf′(a)=0です。
なにはともあれ、まずは「極値って何?」というところから説明します。
極値って何ですか?
極値とは以下です。
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)] が成り立つことをいう。
「なんか小難しいことを言ってるなあ」と思うかもしれませんが、なんてことありません。
平たく言うと、
ということです。
高校でやった三次関数を例に取ると、以下です。

全微分可能な関数が内点で極値を取れば、全微分係数は0です。
さて、主張を明示します。
定理1.(全微分可能な関数が内点で極値を取れば、全微分係数は0である。)
ΩがRnの開集合、f:Ω→Rは全微分可能で、a∈Ω、fはaで極大(または極小)ならば、f′(a)=0(これは∇f(a)=0とも書ける)である。証明はなんてことありません。
定理1.の証明
Ωが開集合なので、
(∃r>0) s.t. B(a;r)⊂Ω
が成り立っています(Ωが開集合であるとはこれを満たすことでした!)。
さて、fがx=aで極大をとるとき、各i∈{1,…,n}に対して、
φi:(ai−r,ai+r)∋xi↦f(a1,…,ai−1,xi,…,ai+1,…,an)∈R
という写像を考えると、fがaで極大をとるのだから、φiはxi=aiで極大値を取ります。
従って、
0=φ′i(ai)=∂f∂xi(a)=0
となります。
これが任意のiについて成り立つわけですので、
f′(a)=(∂f∂x1(a) ⋯ ∂f∂xn(a))=(0 ⋯ 0)=0
が成り立ちます。
定理1.の証明終わり
ここで注意を一つ。
それは「定理1.の逆は成り立ちません。」ということです。
すなわち、たとえf′(a)=0だったとしても、fがaで極値を取らないことがある、ということです。
実際、f(x)=x3、a=0としたとき、f′(a)=f′(0)=0ですがfはa=0で極大でも極小でもありません。
ヘッセ行列の符号によって極値かどうかを判定できる場合があります。
まずは「ヘッセ行列って何?」というところから話をします。
ヘッセ行列?
「ヘッセ行列はこれです!」と最初から言い切っても良いのですが、どういう背景でヘッセ行列なるものが出現したのか、ということから話したほうが良いと思いますので、そこから話します。
多変数のテイラーの定理を使います。
多変数のテイラーの定理は何だったかというと、以下でした。
定理2.(多変数のテイラーの定理)
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.定理2.(多変数のテイラーの定理)の証明は【解析学の基礎シリーズ】偏微分編 その8を御覧ください。
この定理2.において、k=2の場合を用います。
fがC2級であれば、任意の(十分小さい)h≠0に対して、
f(a+h)=f(a)+(d2f)a(h)+12!(d2f)a+θh(h)=f(a)+f′(a)h+12n∑i,j=1∂2f∂xi∂xj(a+θh)hihj
となります。
f′(a)=0とすると、f′(a)h=0なので、
f(a+h)=f(a)+12n∑i,j=1∂2f∂xi∂xj(a+θh)hihj
が成り立っています。
‖h‖が”小さい”ときには、右辺第2項は”おおよそ”hの2次形式なので、符号が一定になる場合があります。
(∃ε>0) s.t. (∀h:0<‖h‖<ε)n∑i,j=1∂2f∂xi∂xj(a+θh)hihj<0 ⟹fはaで極大。
これはあくまでサラッと述べたに過ぎないので、厳密ではありません。
勿論、以下で厳密な話をします。
で、ヘッセ行列って何ですか?
ではヘッセ行列というものを定めます。
ヘッセ行列(Hesse行列、ヘシアン)
C2級の関数fに対して、 H(x)=(∂2f∂xi∂xj(x)) とおき、これをfのxにおけるヘッセ行列(Hesse行列、ヘシアン)と呼ぶ。ここで、以下の定理を思い出しましょう。
定理3.
ΩはRnの開集合、f:Ω→RmはC2級とするとき、任意のi,j∈{1,…,n}およびa∈Ωに対して、 ∂2f∂xi∂xj(a)=∂2f∂xj∂xi(a)定理3.の証明は【解析学の基礎シリーズ】偏微分編 その2を御覧ください。
さて、今、ヘッセ行列のfはC2級なので、定理3.から
∂2f∂xi∂xj(a)=∂2f∂xj∂xi(a)
です。
ということは、ヘッセ行列は実対称行列、すなわち成分が実数でかつ自身と転置行列が一致しているっ行列となります。
これを使えば、
f(a+h)=f(a)+f′(a)h+12n∑i,j=1∂2f∂xi∂xj(a+θh)hihj=f(a)+f′(a)h+12(H(a+θh)h,h)=f(a)+12(H(a+θh)h,h)
と書き換えることができます。
一番のポイントとしては、
(d2f)x(h)=(H(x),h)
であることです。
今回と次回のメインとなる定理(証明は次回行います)
さて、ヘッセ行列の符号によって極値を判定できる場合がある、というのが今回と次回のメインとなる定理です。
「ちょっと待って。ヘッセ行列って行列だよね。行列の符号って何?」となるかと思います。
それは後で説明します。
まずは「ヘッセ行列の符号」というモノが分かれば、関数の極値が半手できる場合がありますよ、という事実を先に述べておきます(証明は次回行います)。
今回と次回のメインとなる定理(ヘッセ行列の符号による極値の判定)
定理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.を見れば明快かと思いますが、要するに、ある点aでのヘッセ行列が正値か負値か不定符号かが分かれば、点aで極値を取るか、取らないか、取るならば極大か極小かが分かる、ということです。
先の通り、この定理の証明は次回行います。
実対称行列の正値性、負値性、不定符号
さて、では定理0.の主張を理解するために実対称行列の正値性、負値性、不定符号について解説します。
実対称行列の正値性、負値性、不定符号
A=(aij)を(n,n)型の実対称行列とする。このとき- Aが正値であるとは、Aの固有値が全て正であるときをいう。
- Aが負値であるとは、Aの固有値が全て負であるときをいう。
- Aが不定符号であるとは、Aの固有値に正のもの、負のものがあるときをいう。
ここでも固有値が出現します。
【線型代数学の基礎シリーズ】でも述べたように、固有値は誠にシンプルなコンセプトでありながら、同時に誠に情報量が多いコンセプトでもあります。
さて、正値、負値については特に問題はないかと思いますが、不定符号については少々混乱するかもしれませんので、簡単にではありますが、例を挙げます。
例4. A=(2003)としたとき、固有値を求めてAが正値か負値か不定符号かを判定してみましょう。
ここで、以下の事実を思い出すと計算するまでもないことが分かります。
勿論、正直に計算してもOKです。
定理5.
n次正方行列Aが三角行列である時、Aの固有値全体は重複も込めてAの対角成分と一致する。定理5.の証明は【線型代数学の基礎シリーズ】固有値編 その1を御覧ください。
さて、Aは対角行列ですので、三角行列です。
故にAの固有値は2,3です。
従って、Aの固有値は全て正の値なので、Aは正値です。
例6. B=(−100−2)としたとき、固有値を求めてBが正値か負値か不定符号かを判定してみましょう。
これも例4.と同様に定理5.から固有値が−1,−2だと直ちに分かります。
故にBの固有値は全て負の値なので、Bは負値です。
例7. C=(500−2)としたとき、固有値を求めてCが正値か負値か不定符号かを判定してみましょう。
これも例4.と例6.と同様に定理5.から固有値が5,−2だと直ちに分かります。
故にCの固有値は正のもの、負のもの双方あるので、Cは不定符号です。
例8. D=(3000)としたとき、固有値を求めてBが正値か負値か不定符号かを判定してみましょう。
これも同様に定理5.から固有値が3,0だと直ちに分かります。
しかし、固有値が全て正というわけでも、全て負というわけでも、不定符号というわけでもありません(負の固有値を持たないから)。
故に、Dは正値でも負値でも不定符号でもないのです。
なぜヘッセ行列の符号が極大極小と関係があるんですか?
先程実対称行列の符号について解説しましたが、「ヘッセ行列の符号で極値が判定できるんだー。ふーん。でもなんで?」となってるかと思います。
これを一撃でイメージが膨らむ定理があります。
と、その定理を説明する前に二次形式について話ます。
二次形式
二次形式というのは比較的シンプルなコンセプトです。
二次形式
x=(x1⋮xn)∈Rnについて、2次の項だけからなる実数係数の整式 f(x)=n∑i=1aiix2i+2∑i<jaijxixj を実二次形式という。ここで、i>jのとき、aij=ajiとおくと、A=(aij)は実対称行列となり、 f(x)=x⊤Ax=(x,Ax)=(Ax,x) と表される。例9. 3x21−2x1x2+4x22は二次形式です。
実際、
3x21−2x1x2+4x22=(x1 x2)(3−1−14)(x1x2)
となるからです。
実対称行列の符号と二次形式の符号との関係
では、行きましょう。
定理10.(実対称行列の符号と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。
この定理の証明は実対称行列の性質を使えばなんてことありません。
定理10.の証明
Aは実対称行列ですので、次の定理を使うことができます。
定理11.
n次実正方行列Aに対して、次の2つの条件は同値である。- Aは対称行列である。
- Aは適当な直交行列Pによって対角化できる。 すなわち、 P−1AP=(λ1O⋱Oλn) である。
定理11.の証明は【線型代数学の基礎シリーズ】固有値編 その4を御覧ください。
Aは実対称行列なので、Aの固有値をλ1,…,λnとすると、定理11.からある実直交行列Uが存在して、
U⊤AU=(λ10⋱0λn)
と対角化できます。
このとき、x=Uy(もしくはUが行列であるからy=U⊤x)とおくと、
(Ax,x)=(AUy,Uy)=(U⊤AUy,y)=((λ10⋱0λn),y)=λ1y21+λ2y22+⋯+λny2n
となります。
ここで、x=0⇔y=0であることに注意します。
1.の証明
①(⇒)の証明
Aが正値だとします。
このときAの固有値λ1,…,λnが全て正です。
今、
(Ax,x)=λ1y21+λ2y22+⋯+λny2n
だったわけですので、任意のy∈Rn∖{0}に対して、y2i>0 (1≤i≤n)が成り立っていて、かつλi>0 (1≤i≤n)です。
故に、
λ1y21+λ2y22+⋯+λny2n>0
ですから、(Ax,x)>0です。
②(⇐)の証明
逆に、任意のy∈Rn∖{0}に対して、
λ1y21+λ2y22+⋯+λny2n>0
だったとすれば、y2i>0 (1≤i≤n)ですので、λ1,…,λnは全て正でなければなりません。
従って、Aは正値です。
2.の証明
1.と同じです。
Aが負値だとします。
このときAの固有値λ1,…,λnが全て負です。
今、
(Ax,x)=λ1y21+λ2y22+⋯+λny2n
だったわけですので、任意のy∈Rn∖{0}に対して、y2i>0 (1≤i≤n)が成り立っていて、かつλi<0 (1≤i≤n)です。
故に、
λ1y21+λ2y22+⋯+λny2n<0
ですから、(Ax,x)<0です。
②(⇐)の証明
逆に、任意のy∈Rn∖{0}に対して、
λ1y21+λ2y22+⋯+λny2n<0
だったとすれば、y2i>0 (1≤i≤n)ですので、λ1,…,λnは全て負でなければなりません。
従って、Aは負値です。
3.の証明
Aが不定符号だとします。
すなわち、Aの固有値は0ではなく、必ず正か負かのいずれかの値を取ります。
今、
(Ax,x)=λ1y21+λ2y22+⋯+λny2n
だったわけですので、yiの値によっては(Ax,x)は正の値をとったり負の値を取ったりします。
これはつまり、(Ah,h)>0となるようなh∈Rnと(Ah′,h′)<0となるようなh′∈Rnの双方が存在する、ということです。
従って、成り立ちます。
ちなみに、この逆は成り立ちません。
というもの、例えばAが3次の実対称行列だったとして、(Ax,x)=λ1y21+λ2y22+λ3y23と書けたとします。
しかしながら、λ1=λ2=0だったとしても、λ3の値によっては(Ax,x)>0となったり(Ax,x)<0となったりするからです。
定理10.の証明終わり
で、結局どうしてヘッセ行列の符号が極値と関係あるんですか?
さて、少々確認しておくと、f′(a)h=0のとき、
f(a+h)=f(a)+12(H(a+θh)h,h)
と書けるのでした。
ということは、(H(a+θh),h)の符号によってf(a)とf(a+h)の大小関係が分かります。
※以降の話はあくまでイメージを伝えるものですので、厳密ではありません。厳密な話は次回の証明で行います。
もし仮に(H(a+θh),h)>0なのであれば、f(a+h)>f(a)となるので、fはa極小を取ります。
仮に(H(a+θh),h)<0なのであれば、f(a+h)<f(a)となるので、fはa極大を取ります。
不定符号だった場合は大小が定まらないので極値は取らない、というイメージです。
余談(読者の皆様のコメントを下さい!)
今回の話は解析の話をしていると思いきや、実は線型代数の話の方がウエイトが多くなっています。
筆者の体験談だと「あれ?今まで解析の話をしてたのに気がついたら代数じゃね?」ということが割とあります。
そういう意味で行くと、やはり数学はつながっているんだなあ、と感じます。
例えば、幾何の問題を解析的な手法で解くとか。
それで言うと、デカルト座標系上で幾何学を考えて、辺の長さやらの量を定めてより図形に情報量を与える、というのがいい例かもしれません。
読者の皆さんで「この問題は一見〇〇の分野の問題に見えて、実は△△の知識を使うと一瞬で片がつく」という問題に出会った方がいれば是非、コメントで教えて下さい!
結
今回はヘッセ行列による極値判定①ということで、ヘッセ行列での極値判定に必要な準備を説明しました。
具体的にはヘッセ行列とはなにか、実対称行列の正値性、負値性、不定符号性について解説しました。
実は、殆ど線型代数の話です(“行列”って言ってるんだからそりゃそうだろって感じですが(笑))。
そして、簡単にではありますが、ヘッセ行列の”符号”がどうして極値と関係するのか、ということについても解説しました。
次回は定理0.の証明を行い、実際に極値を求めてみます。
乞うご期待!
質問、コメントなどお待ちしております!
どんな些細なことでも構いませんし、「定理〇〇の△△が分からない!」などいただければ全てお答えします!
お問い合わせの内容にもよりますが、ご質問はおおよそ3日以内にお答えします。
もし直ちに回答が欲しければその旨もコメントでお知らせください。直ちに対応いたします。
Twitterでもリプ、DM問わず質問、コメントを大募集しております!
コメントをする