解析 II ・講義ノート
第8回
(2020年12月 1日(火)配信分)
§8.
高次の微分と極値問題
さて、
2変数関数
f(x, y)は偏微分可能として、その偏導関数
fx(x, y), fy(x, y)
がさらに偏微分可能のとき、
f(x, y)は
2回
(由緒 正しい本では「 階」)偏微分可能であると言い、得られる
2次偏導関
数を次のように表します。
∂
∂x
∂f
∂x
= ∂2f
∂x2 = (fx)x(x, y) = fxx(x, y)
∂
∂y
∂f
∂x
= ∂2f
∂y∂x = (fx)y(x, y) = fxy(x, y)
∂
∂x
∂f
∂y
= ∂2f
∂x∂y = (fy)x(x, y) = fyx(x, y)
∂
∂y
∂f
∂y
= ∂2f
∂y2 = (fy)y(x, y) = fyy(x, y)
と表します。上付きの
2の位置、表記による
xと
yの順番の違
いに気をつけましょう。
これらが全て連続のとき、
f(x, y)は
C2級であると言います。
f(x, y)
が
C2級のとき、
fxy(x, y)と
fyx(x, y)は一致しますが、
C2
級でないときは、一致するとは限らないので注意が必要です。
これらを並べて出来る
2次正方行列を
f(x, y)のヘッセ行列と
呼び、
Hess f = D2f =
fxx fxy fyx fyy
で表します。
f(x, y)が
C2級のとき、そのヘッセ行列は、各点
(x, y)
で実対称行列になります。
一次関数
f(x, y) = ax + by + cに対し、
fxx(x, y) = fxy(x, y) = fyx(x, y) = fyy(x, y) = 0 ((x, y) ∈ R2)
より、
Hess f(x, y)は零行列です。
また二次関数
f(x, y) = ax2 + 2bxy + cy2に対しては、
fxx(x, y) = 2a, fxy(x, y) = 2b
fyx(x, y) = 2b, fyy(x, y) = 2c ((x, y) ∈ R2)
より、
Hess f(x, y) =
2a 2b 2b 2c
となります。
以下繰り返し、
n回微分可能、
n次偏導関数、
Cn級、無限回微
分可能=
C∞級
(⇐⇒何回でも好きな変数について好きな順番で 偏微分できる
)と言った用語が定義されます。任意の多項式関数、
有理関数は、定義域の各点で
C∞級になります。また
2変数
(多
変数
)の
Cn級関数と
1変数の
Cn級関数の合成関数も
Cn級にな
ります。
さて、
f(x, y)は
C2級としましょう。点
x0 = (x0, y0)を通り
方向ベクトル
v = (p, q)の直線
(x, y) = (x0 + pt, y0 + qt) = x0 + tv
(t ∈ R (
または
0を含む開区間
))に制限すると
(つまりグラフを縦の平面で切ると
)、
tに関する
1変数関数
g(t) = f(x0 + pt, y0 + qt) = f(x0 + tv)
が得られますが、この関数もまた
C2級で、次が成り立ちます。
(
以下では、慣例にならって、勾配ベクトル
grad f,方向ベクトル
vは共に列ベクトルと考え表記します。
)g′(t) = fx(x0 + pt, y0 + qt) p + fy(x0 + pt, y0 + qt) q
=
fx(x0 + tv) fy(x0 + tv)
·
p q
( · は内積)
= grad f(x0 + tv) · v
g′′(t) = fxx(x0 + pt, y0 + qt) p2 + fxy(x0 + pt, y0 + qt) pq
+fyx(x0 + pt, y0 + qt) qp + fyy(x0 + pt, y0 + qt) q2
= (p q)
fxx(x0 + tv) fxy(x0 + tv) fyx(x0 + tv) fyy(x0 + tv)
p q
= tv Hess f(x0 + tv) v
この関数に
t = 0で平均値の定理を適用すると
g(t) = g(0) + g′(θt) t (∃θ ∈ (0, 1))
= f(x0) + t (grad f(x0 + θtv) · v) 2
次までのテイラーの定理を適用すると
g(t) = g(0) + g′(0) t + 1
2g′′(θt) t2 (∃θ ∈ (0, 1))
= f(x0) + t (grad f(x0) · v) +t2
2 (tv Hess f(x0 + θtv) v)
が得られます。
特に二次関数
f(x, y) = ax2 + 2bxy + cy2 + kx + ly + mの場合
には、
g(t) = m + t
k l
·
p q
+ t2 (p q)
a b b c
p q
ですが、一般の関数では、最後の項の行列が一定にはならず、
x0 = (x0, y0)
にも
v = (p, q)にも依る上に、何より
θ ∈ (0, 1)が何
か具体的にはわからないので少々注意が必要です。
今、一般の
2変数関数
z = f(x, y)について、と言っても
C2級くらいは仮定して、その増減について調べてみたいと思います。
1
変数が
2変数になっても、とりあえずグラフを3Dで描く、
もしくは思い浮かべることはできました。しかし、
2変数になっ
て
1変数と大きく違うことの一つに、増減表が書けないと言うこ とがあります。それは変数の変化が直線的でないため、右に行く と増え、左へ行くと減ると言ったように、関数の値の増減を表に 表すことが困難だからです。そこで極大値や極小値、最大値や最 小値をどこでとるか調べるにあたって、
1変数のとき以上に、
2回微分の果たす役割が重要になります。
f(x, y)
は
(x, y) = (x0, y0)で極大
(小
)値をとるとしましょう。
極大
(小
)値の定義は、本によって多少ぶれがあって、面倒なこと もあるのですが、この講義では、
(x0, y0)の十分近くでは最大
(小
)値、より厳密に言うと、十分小さい
δ > 0を選べば
f(x0, y0) ≥ f(x, y) (||(x, y) − (x0, y0)|| < δ)
(
極小値のときはもちろん
≤ )が成り立つとき、極大
(小
)値をと
ると言うことにしておきます。
このとき、点
(x0, y0, f(x0, y0))を通る任意の縦の平面
(x, y, z) = (x0 + pt, y0 + qt, z) ((t, z) ∈ R2)
で切っても、断面に現れる
( tに関する
) 1変数関数
z = g(t) = f(x0 + pt, y0 + qt)
は、
t = 0 (つまり
(x, y) = (x0, y0) )で極大
(小
)値をとりますか
ら、結局、偏微分を含む全ての方向微分が
(x, y) = (x0, y0)で
0に
ならなければなりません。
C1級のとき、偏微分が
0なら方向微
分も
0になりますから、とりあえず
fx(x0, y0) = fy(x0, y0) = 0
ならば、この条件は満たします。
さて、
1変数関数
y = f(x)の場合には、
x = x0で極値をとる
ならば、
f′(x0) = 0を満たしましたから、上の事実はちょうどそ
の部分に対応しています。そこで、実際に極値になっているのか
どうかは、
x = x0の前後で
f′(x)の符号が変わるか否かで判定す
ることができました。ところが
2変数ではこれは難しい。そこ
で、もう一つの判定方法、
C2級のとき凹凸を調べると言う方法を
考えてみましょう。
それは、
f′′(x0) < 0ならば上に凸で極大値、
f′′(x0) > 0ならば
下に凸で極小値 と言うものでした。これをテイラー展開を用いて 説明すると、
f(x) = f(x0) + f′(x0) x + 1
2f′′(x0 + θ(x − x0)) x2
= f(x0) + 1
2f′′(x0 + θ(x − x0)) x2
で、ここで
f′′(x0) < 0 (>)ならば、十分
x0に近い任意の
x ̸= x0に対しても、
f′′(x0 + θ(x − x0)) < 0 (>)が成り立つので、
f(x) < f(x0) (>)
も成り立ち、
x = x0で極大
(小
)値をとると言う
ことになります。
2
変数の場合も同様に、偏微分が
0ならば、先に計算しておい た
2次までのテイラー展開は
1次の項が消えるため、
f(x) = f(x0) + t2
2 (tv Hess f(x0 + θtv) v)
となり、
f(x)と
f(x0)の大小は、
2次の項の符号だけで決まるこ とになります。ここで
t22 > 0 (t ̸= 0)
ですから、結局十分
0に近
い
t ̸= 0に対し、
tv Hess f(x0 + θtv) v
が、
v = (p, q) (√p2 + q2 = 1)
と
θ ∈ (0, 1)に依らず、負
(正
)なら
ば
f(x) < f(x0) (>)より、
f(x, y)は
(x, y) = (x0, y0)で極大
(小
)値をとるとわかります。
それでは、その正負がどうしたらわかるかと言うと、行列とベ クトルで表していることからもわかるように、二次関数の分類の 際に、線形代数からの準備として用意しておいた、実対称行列の 対角化を用いる方法が使えます。
2
次までのテイラー展開は、実は一次関数による近似
f(x0) + t (grad f(x0) · v) (今は 1 次の項は 0 )
の誤差を
2次の剰余項
t22 (tv Hess f(x0 + θtv) v)
によって表したもので、二次関数による近似とは言えませんが、
その誤差の部分の符号を調べることで、大雑把に言えば、どのよ
うな二次関数に近い凹凸の状況にあるかがわかります。
さて、
2変数の二次関数
ax2 + 2bxy + cy2は行列
a b b c
の固有値
λ1, λ2を用いて、
λ1X2 + λ2Y 2の形に書き直すことがで きるので、固有値がどちらも負
(正
)なら、原点以外では負
(正
)の
値をとりました。そして、固有値は固有方程式
λ2 − (a + c)λ + (ac − b2) = 0
の解でしたから、解と係数の関係より、
ac − b2 > 0のとき同符号
で、さらに
a + c < 0 (>)のとき負
(正
)になりました。ところが
ここで
ac > b2 ≥ 0より
aと
cは同符号ですから、この二つ目の
条件は
a < 0 (>)または
c < 0 (>)に置き換えられます。
従って、今考えている
2変数関数の場合には、任意の単位ベク トル
vと十分
0に近い
tと
θ ∈ (0, 1)に対し、
x = x0 + θtvで
fxxfyy − fxy2 > 0, fxx < 0 (fxx > 0)
ならば極大
(小
)値となりますが、今仮定より
fは
C2級なので、
fxx, fyy, fxy
は全て連続のため、
fxxfyy − fxy2もまた連続で、
x = x0
の近くでは、それらの符号は
(従って
Hess fの固有値の符
号も
)変わりません。よって、
x = x0での符号を調べれば十分と 言うことになります。
一方
fxxfyy − fxy2 < 0
ならば、
x = x0のいくらでも近くで、
tv Hess f vが正負両方の
値をとってしまうので、極値にはならないことも判定できます。
以上まとめると、
C2級の
2変数関数
f(x, y)が、
fx(x0, y0) = fy(x0, y0) = 0
をみたすとき、
(1) fxx(x0, y0)fyy(x0, y0) − fxy(x0, y0)2 > 0
かつ
fxx(x0, y0) < 0な
らば
(x, y) = (x0, y0)で極大値
f(x0, y0)をとる。
(2) fxx(x0, y0)fyy(x0, y0) − fxy(x0, y0)2 > 0
かつ
fxx(x0, y0) > 0な
らば
(x, y) = (x0, y0)で極小値
f(x0, y0)をとる。
(3) fxx(x0, y0)fyy(x0, y0) − fxy(x0, y0)2 < 0
ならば
(x, y) = (x0, y0)で極値をとらない。
と判定できます。
判定条件を二次方程式の判別式を用いて説明している本などでは、
fxy2 − fxxfyy の符号で記述していることがあります。見かけ上、正負が逆にな るので、参照する際には注意して下さい。この講義では、線形代数との関わり を重視して、fxxfyy − fxy2 の符号で記述しました。
ちょっと例題を見ておきましょう。二次関数はもう分類済み
0 - x y z 6
z =ax2+cy2 (a < 0, c <0)
◦ 極大値
0 -
x y z 6
z =ax2+cy2 (a > 0, c >0) 極小値◦
0 - x y z 6
z =ax2+cy2 (a > 0, c <0) 極値でない ◦
なので、
2変数の三次関数
f(x, y) = x2y − yについて考えてみま
しょう。もしこの関数がどこかで極値をとるならば、そこでは
fx(x, y) = 2xy = 0 fy(x, y) = x2 − 1 = 0
が成り立たなければなりません。
第2式より
x = ±1で、これを第1式に代入して
y = 0を得ま
す。従って、極値を取る点の候補は
(x, y) = (±1, 0)です。ここで
fxx = 2y, fxy = 2x, fyy = 0
より、
fxx(±1, 0) = 0, fxy(±1, 0) = ±2, fyy(±1, 0) = 0
ですから、
fxx(±1, 0)fyy(±1, 0) − fxy(±1, 0)2 = −4 < 0
より、極値はとらないことがわかります。
[
練習課題
]f(x, y) = x2y − y + 1
3y3
ではどうでしょうか?
上の判定条件
(1),(2),(3)の内、どの条件も満たさないときは、
さらに高次の微分に関する情報が無ければ、一般には判定できま せん。
たとえば二次関数の場合、原点で偏微分が消えていてヘッセ行 列の固有値の一つが
0ならば、対角化する座標変換により、結局
f(x, y) = ax2(+0y2) (a ̸= 0)
の場合に帰着しましたが、この場合
fxx(0, 0)fyy(0, 0) − fxy(0, 0)2 = 2a · 0 − 02 = 0
となり、上の判定条件は適用できないものの、
a < 0のとき、
f(x, y) ≤ f(0, 0) ((x, y) ̸= (0, 0)) ( a > 0
のとき
≥ )より、極大
(小
)値をとります。
( y 軸 (x = 0) 上では等号が成立してしまうので、本によってはこれを極値と 認めなかったり、広義の(=広い意味での)極値と言ったりします。)
0 - x y z 6
z = ax2(+0y2) (a < 0, c= 0)
◦ (広義の)極大値
0 -
x y z 6
z = ax2(+0y2) (a > 0, c= 0) (広義の)極小値 ◦
しかし、これが
f(x, y) = ax2 + cy3 ( a ̸= 0, c ̸= 0 )なら、原点
での偏微分は
2回まで全て上の例と一致するものの、
c > 0(c < 0)
のとき、
y軸上では狭義単調に増加
(減少
)するので、原点
では極値をとりません。
一方、
f(x, y) = ax2 + cy4 ( a ̸= 0, c ̸= 0 )なら、やはり原点で
の偏微分は
2回まで全て上の例と一致しかつ、
a < 0かつ
c < 0のとき、
f(x, y) < f(0, 0) ((x, y) ̸= (0, 0))
( a > 0
かつ
c > 0のとき
> )より、原点で極大
(小
)値をとりま
すが、
a < 0かつ
c > 0のときは、
x軸上で上に凸、
y軸上で下に
凸
( a > 0かつ
c < 0のときは上下が逆
)より、原点で極値はとり
ません。
このように、ヘッセ行列
Hess f(x0)の固有値の中に
0がある、
つまり
2回微分が消えている方向があるとき、高次の項の符号 が、極値になるならないに影響して来るわけです。特に
x2y, xy2, x3y, x2y2, xy3
などの項が、一般には
2次の場合の
xyのように整理できるとは 限らず、判定にはより困難が伴います。
ここでは
2変数関数について説明して来ましたが、上の判定条 件は、
n変数関数でも同様に成り立ちます。ただし、実
n次対称
行列の固有値の符号の判定条件を書き下すために、
Hess f(x0)の
小行列式が用いられ、条件式の本数は
nに応じて増えます。この
講義ノートでは省略しますが、参考書等で確認しておいて下さい。
第7回練習課題の解答
∂(r, θ)
∂(x, y) =
√ x
x2 + y2
√ y
x2 + y2
− y x2 + y2
x x2 + y2
=
cos θ sin θ
−sin θ r
cosθ r
= 1 r
r cosθ r sinθ
− sinθ cosθ
=
cosθ −r sinθ sinθ r cosθ
−1
=
∂(x, y)
∂(r, θ)
−1