お勉強の記録

勉強したことを書いたりする予定

Hessianを計算するのがめんどくさかった話

この記事は

日曜数学 Advent Calendar 2020 - Adventar 7日目の記事です

前日の6日目はmath_Kantenさんによる一風変わった切り口の記事でとても面白かったです.

導入

突然ですが,次のような問題を考えてみましょう:

関数f(x,y) = \frac{xy}{x^4+y^4+2}について,(x,y)が平面全体を動く時の極値をすべて求めよ.

いかにも偏微分を習いたての頃に演習問題で出てきそうな趣の問題です.

この問題を考える時,まず有用なのが次の事実です:

(十分滑らかで,平面全体を定義域とする)関数f(x,y)について,f(a,b)極値となるとすると,f_x(a,b) = f_y(a,b) = 0である.

さて,上の事実を逆に言えば *1 極値を考える時はf_x(a,b) = f_y(a,b) = 0となるような場所だけを考えれば良いということになります.というわけでまずは一階偏導関数を求めてみましょう.ちょっと計算が大変ですが,この程度なら気合いでなんとかなります. 計算結果は次のようになります:

f_x = \frac{y(-3x^4 + y^4 + 2)}{(x^4+y^4+2)^2},f_y =  \frac{x(-3y^4 + x^4 + 2)}{(x^4+y^4+2)^2}

ここからf_x = f_y = 0となる点を求めると,(0,0),(1,1),(1,-1),(-1,1),(-1,-1)の五つであることがわかります.

Hessian

したがって,あとは上の五つの点がそれぞれ極値を与えるか否かを考えれば良いことになります. このうち(0,0)については,付近でのfの符号を考えれば極値になり得ないことがすぐにわかります. 残りの4点について考える上で,よく知られた次の事実は有用そうです:

(十分滑らかで,平面全体を定義域とする)関数f(x,y)について,f_x(a,b)= f_y(a,b) = 0であるとする. このとき(f_{xx}f_{yy} - (f_{xy})^2)(a,b) \gt 0であればf(a,b)極値であり (f_{xx}f_{yy} - (f_{xy})^2)(a,b) \lt 0であればf(a,b)極値でない.

この(f_{xx}f_{yy} - (f_{xy})^2)にはHessianという名前がついています.上記の通り関数の極値を求める上で有用なものですが,いかんせん今回の場合は計算がめんどくさい! 上で求めた一階微分の式からも容易に想像がつく通り,今回のfの二階微分を求めるのは計算量が多くなかなか大変です.そこでできればもっと単純な方法で求めたい,というのが今回の記事の主旨になります.

(多変数版)最大値原理

とりあえず残りの4点についてfによる値を計算してみると,それぞれ f(1,1) = f(-1,-1) = \frac{1}{4} , f(-1,1) = f(1,-1) = -\frac{1}{4} となることがわかります. またfをググッと睨むと \lim_{x^2+y^2 \to \infty}f(x,y) = 0であることもわかります. したがって,十分大きい R  \gt 2をとると, x^2 + y^2 \geq Rのとき |f(x,y)| \lt \frac{1}{4}となります. ところで,次の多変数版最大値原理を考えれば,f x^2 + y^2 \leq Rでの最大値,最小値を持つがわかります.

f(x_1,\ldots,x_n)を連続関数として,R>0とする. このときfx_1^2+ \cdots + x_n^2 \leq R上での最大値,最小値を持つ.

(これが1変数の最大値原理(連続関数は閉区間上での最大値,最小値を持つ)の自然な拡張であることはすぐにわかると思います)

ところで,(1,1)(-1,1)x^2 + y^2 \leq Rを満たすため,f x^2 + y^2 \leq Rでの最大値はf(1,1) = \frac{1}{4}以上, 最小値はf(-1,1) = -\frac{1}{4}以下となることがわかります.したがってRの定義から x^2 + y^2 = Rとなる点では x^2 + y^2 \leq Rでの最大値や最小値を与える点は存在しません. するとf x^2 + y^2 \lt Rでの最大値,最小値を持つことになります.すぐわかることとして,この範囲での最大値最小値はf微分零点によって与えられます. すなわち,f x^2 + y^2 \leq Rでの最大値最小値はf(1,1),f(-1,1),f(1,-1),f(-1,-1)の中に存在することになります. つまり,f x^2 + y^2 \leq Rでの最大値はf(1,1) = f(-1,-1) = \frac{1}{4} ,最小値はf(-1,1) = f(1,-1) = -\frac{1}{4} となります. ところでRの取り方からこれは平面全体でのfの最大値,最小値をそれぞれ与えることもすぐわかります. 最大値は極大値であり最小値は極小値であることから,当初の問題の答えは以下のようになります.

fは極大値f(1,1) = f(-1,-1) =  \frac{1}{4} ,極小値f(-1,1) = f(1,-1) = -\frac{1}{4} を持つ.

以上のようにして面倒な微分を計算することなく極大値極小値を求めることができました.

おまけ

上記の議論は次のような形で一般化することができます.

連続関数f(x_1,\ldots,x_n)は,\lim_{x_1^2 + \cdots x_n^2 \to \infty} f(x_1,\ldots,x_n )= 0を満たすとする. このとき 1. ある点でfが正となるときfは最大値を持ち, 2. ある点でfが負となるときfは最小値を持つ.

*1:この場合の逆に言えばは日常語であって,論理的な意味での逆向きのimplicationの意味ではありません.対偶を取れば,という方がいいかも…