経済数学（法政用）：第１０章
細矢祐誉
テーマ：最適化理論（凹関数、準凹関数）
・凹関数の最適化問題
この章でも、引き続き

max

f (x)

subject to. x ∈ Aといった問題を考えていく。ただし、ここでは A はコンパクトであることを仮定しない。ということは、第９章で紹介したような「解が確実に存在する」ことを前提とした議論はうまく行かない。以下、例をひとつ挙げる。
例：maxx x2 (−1 ≤ x) という問題を考える。x2 の導関数は 2x なので、微分が 0 になるところは 0 のみ。端は −1 のみである。f (x) = x2 とすれば f (−1) = 1, f (0) = 0 なので、第９章の解法である「微分が 0 になるところか端が解」という論法が使えるのならば、解答は −1 となる。
しかし、f (2) = 4 であり、明らかに −1 はこの問題の解ではない。よって、この問題に解答はないことがわかる。
上の例から、解がないケースでは前の解き方は失敗するということはわかった。従ってなにか別の手法が必要である。そこで次にヒントになるのが Fermat の定理である。この定理は「最大点では微分が 0 になる」という定理である。これをひっくり返して、「微分が 0 であれば最大点である」ということは言えないだろうか？
無論、無条件ではこの定理は無理である。なぜなら、f の最大点は −f の最小点でもあり、そして f ′ (x) = 0 ならば −f ′ (x) = 0 が成り立つため、最小点でも微分すると 0 になるからである。無論これは一例であり、実際には微分が 0 であるにもかかわらず極大でも極小でもない点すら存在する。（x3 の 0 の近くでのグラフを書いてみるといい。）
そこで次に行き着くのが、条件の追加である。といっても制約は a ≤ x しか形を考えていないので、条件を追加できるのは f のみである。そこで、f になにかの条件を追加すれば、Fermat の定理の逆である「微分が 0 であれば最大点である」が言えるようになるのではないか？という期待が生まれる。以下で、それが正しいことを示していこう。

まず、凹関数 (concave function) という言葉を定義しておく。実数値関数 f が凹関数であるとは、どんな x, y と 0 ≤ t ≤ 1 を満たすどんな t を持ってきても、次の不等式

f ((1 − t)x + ty) ≥ (1 − t)f (x) + tf (y)が成り立っていることを言う。
主要な定理は次で与えられる。なお、上の例はすべて f が一変数関数であるときの例であったが、証明を見ればわかるように多変数関数で議論してもまったく問題ない。
定理１：f は凹関数で、Df (x) = 0 が成り立っていたとすると、x は f の最大点である。
証明：まず y を適当に取り、g(t) = f ((1 − t)x + ty) = f (x + t(y − x)) と置けば、合成関数の微分の公式から

g ′ (0) = Df (x)(y − x) = 0である。よって、

0 = g ′ (0)g(t) − g(0)t↓0tf ((1 − t)x + ty) − f (x)
= lim
t↓0t
(1 − t)f (x) + tf (y) − f (x)≥ limt↓0t−tf (x) + tf (y)= limt↓0t= lim(f (y) − f (x)) = f (y) − f (x)= limt↓0となるので、f (x) ≥ f (y) がわかる。y はなんでもよかったので、どんな y に対してもf (x) ≥ f (y) が成り立っていることになり、よって x は f の最大点である。 ■この定理を使えば、f が凹関数でさえあれば、f ′ (x) = 0 という式が成り立っている点

x を見つけるだけで、自動的に x が解であるということがわかってしまう。これは前の方法と比べて明らかに計算の手間が減っている上、解が存在するかどうかわからないときでも通用するやり方である。
しかし、f が凹関数であることをチェックするためにどうすればいいか、この定義だ
けからではわかりにくい。そこで、簡単にチェックできる方法を与えておきたい。最初に用語をひとつ追加する。A が凸集合であるとは、x, y ∈ A かつ 0 ≤ t ≤ 1 ならば常に(1 − t)x + ty ∈ A である、という性質が成り立っていることを指す。これは x, y がベク

トルでも同様に定義できる概念だが、実は実数の部分集合については、A が凸集合である
ことは A が「区間」であることと同値であることが知られている（第３章を見よ）。まず、

f が凹関数であるためには、f の定義域が凸集合でないと話が始まらないことに注意しよう。次に、f が一変数関数の場合の定理を述べておく。
定理２：f が実数の凸集合 A 上で連続で、A の端点以外で微分可能であるとする。このとき、f ′ (x) が非増加である（つまり、x < y ならば f ′ (x) ≥ f ′ (y)）ことと、f が A 内で凹関数であることは同値である。特に f が A 上で二階微分可能であれば、f が凹関数であることと、x ∈ A ならば f ′′ (x) ≤ 0 となることは同値である。
証明：だいたいどのケースでも同じなので、A = [a, b] という閉区間の場合のみを問題にする。一般の場合は各自で証明を試みること。
まず、f が凹関数であるとしよう。まず、a ≤ x < z < y ≤ b ならば

f (y) − f (x)f (z) − f (x)f (y) − f (z)≤≤y−zy−xz−xであることを示してみよう。最初に、z = (1 − t)x + ty となる t がなんであるかを計算してみよう。このとき、z = x − tx + ty = x + t(y − x)であるから、両辺から x を引いて、

z − x = t(y − x)であり、よってt=z−xy−xである。故に 0 < z − x < y − x より、0 < t < 1 である。次に、

f (z) ≥ (1 − t)f (x) + tf (y) = f (x) + t(f (y) − f (x))
であるから、両辺から f (x) を引いて、

f (z) − f (x) ≥ t(f (y) − f (x)) =(z − x)(f (y) − f (x))
y−xであり、この両辺を z − x で割るとf (z) − f (x)f (y) − f (x)≥z−xy−xが出る。これで不等号の片方が出た。もう片方の不等号

f (y) − f (x)f (y) − f (z)≥y−xy−zもまったく同じようにして計算できる（z = (1 − s)y + sx となる s を求め、上の t の代わりに使うとよい。）。
さて、そこで a < x < y < b のときに、上の不等式の前者の z を y に向けて極限を取り、後者の z を x に向けて極限を取ることで、

f ′ (y) ≤f (y) − f (x)≤ f ′ (x)y−xがわかる。したがって f ′ は減少関数である。以上で、f が凹関数であるならば f ′ は減少的であることが示せた。
逆に一階の導関数 f ′ が減少関数であるとしよう。仮に f が凹関数でなく、a ≤ x <y ≤ b を満たす x, y と 0 < t < 1 を満たす t に対してf ((1 − t)x + ty) < (1 − t)f (x) + tf (y)が成り立っていたとしてみよう。このとき (1 − t)x + ty = z とすれば、上の計算と同様に

t=z−xy−xであり、かつ f (z) − f (x) < t(f (y) − f (x)) なので、f (z) − f (x)f (y) − f (x)<z−xy−xである。同様にして、

f (y) − f (z)f (y) − f (x)>y−zy−xが示せる。平均値の定理から、z と x の間に f ′ (w) =の間に f ′ (v) =f (z)−f (x)となる w が、また y と zz−x

f (y)−f (z)となる v が存在することになるが、w < z < v で、かつy−zf ′ (w) <f (y) − f (x)< f ′ (v)y−xが成り立つことになり、f ′ が減少関数であるという事実と矛盾する。したがってこれはあり得ず、f は凹関数である。 ■これによって、凹関数であることを確かめるためには、単に二階微分が常に 0 以下であることを確かめればよいことがわかる。
なお、f (x) =√x などを考えれば、これは開半直線 (0, +∞) 上で微分
√11 11f ′ (x) = ( x)′ = (x 2 )′ = x− 2 = √22 xを持つ。この右辺は x = 0 ならば分母が 0 になるので、f ′ (0) は存在しないことがわかる。
上の定理で、「端点を除いて微分可能」という条件にこだわったのは、この場合をカバーするためであることを注意しておく。
一般の多変数の凹関数については、その判定法は簡単ではない。ヘッセ行列



fx1 x1 (x)..
D2 f (x) = .

...
..
.


fx1 xn (x)..
.

fxn x1 (x)...

fxn xn (x)が、線形代数で言われる半負値定符号 (negative semi-deﬁnite) と呼ばれる条件を満たす、というのがその条件になるのだが、難しいので省略する。代わりに、次の定理が成り立つことを指摘しておく（証明は省略するが、案外面倒であることを指摘しておく）。
定理３：A ⊂ Rn が非空な内部を持つ凸集合であり、f が A 上で定義された連続な実数値関数であるとする。このとき、f が凹関数であることは、A の内部の任意の x と、任意のv ∈ Rn に対して、関数
g(t) = f (x + tv)が凹関数であることである。
これを使うと、二変数の場合の判定定理が容易に導ける。
定理４：A ⊂ R2 が非空な内部を持つ凸集合であり、f が A 上で定義された連続な実数値関数で、A の内部で二階連続微分可能であるとする。このとき、f が凹関数であることは、A の内部で次の３つの不等式が成り立つことと同値である。

fxx ≤ 0,fyy ≤ 0,fxx fyy − fxy fyx ≥ 0.

証明：定理３の仮定はすべて満たされているので、A の内部にある (x, y) と、任意の (v, w)を取ってきて、g(t) = f (x + tv, y + tw)としよう。f が凹関数であることは、すべての v と w について g が凹関数であることと同値である。そこで g を二階微分すると、

g ′ (t) = fx (x + tv, y + tw)v + fy (x + tv, y + tw)w,
g ′′ (t) = fxx v 2 + 2fxy vw + fyy w2となる（fxy = fyx に注意。最後、変数省略）。よって、f が凹関数であることは、すべての v と w について

fxx v 2 + 2fxy vw + fyy w2 ≤ 0であることと同値である。
以下、最初に f が凹関数だとしよう。すると上の不等式がすべての v と w について成り立つ。v = 0 とすれば fyy ≤ 0 が、w = 0 とすれば fxx ≤ 0 が出てくるので、定理４の不等
f+ fxy , w = 1 と式のうち２つはすぐ出てくる。もし fxx = 0 であるとすれば、v = − 2fyyxy2
代入すれば、fxy≤ 0 を得て、ここから fxy = 0 を得る。したがって fxx fyy − fxy fyx = 0であり、定理４の３番目の不等式が得られる。一方、fxx = 0 ならば、上の不等式の両辺vを w2 で割って s = wとすれば

fxx s2 + 2fxy s + fyy ≤ 0となるので、判別式の条件から
2fxy− fxx fyy ≤ 0を得るが、これはやはり３番目の不等式と同値である。よって、定理４の３つの不等式は、いずれの場合もたしかに成り立つ。
逆に、f が定理４の３つの不等式を全部満たしているとすれば、

fxx v 2 + 2fxy vw + fyy w2 ≤ 0が成り立つことも、同様にして示すことができる。が、これは読者への宿題とする。 ■・凹関数の問題の解き方

例１：f (x) =√x − x とし、問題 maxx f (x)(0 ≤ x) を考える。

計算すれば、

1 3f ′′ (x) = − x− 2 < 04ということがわかるので、系からこの関数は凹関数である。一方、

f ′ (x) =1 −1x 2 −12がわかる。したがって、

f ′ (x) = 0 ⇔ x− 2 = 2 ⇔ x =114がわかる。
定理１と２から、x = 41 は上の問題の最大点であることがわかる。
例２：問題max1

f (x, y) = (xy) 3 − x − ysubject to. x ≥ 0, y ≥ 0.
を考える。このとき、x > 0, y > 0 ならば

2 5 1
fxx = − x− 3 y 3 < 0,9fxy = fyx =1 −2 −2x 3y 3,92 5 1fyy = − x− 3 y 3 < 0,9fxx fyy − fxy fyy =1 −4 −4x 3y 3 > 027となるので、定理４から f は凹関数である。そしてfx =1 −2 1x 3 y 3 − 1 = 0,3fy =1 1 −2x 3 y 3 − 1 = 0,3を解けば、最初の式から
12y 3 = 3x 3 ,つまり

y = 27x2を得る。同様に二番目の式から

x = 27y 2を得る。代入して、

y = (27)3 y 4を得るので、ここから

y=11,x =2727を得る。定理１から、これが解である。

・限定付き最大化と準凹関数
ここでは、第９章と同様に

max

f (x)

subject to. p · x ≤ m,x ∈ Rn+を考える。すでに述べたように、ラグランジュの原理では解けない問題があるのだが、その解法は一般に簡単ではない。そこで、ラグランジュの原理だけで解ける f はどんなものか、という疑問が生まれる。凹関数だとどうだろうか？

実は凹関数ならば、ラグランジュの原理で出てきた解は必ずこの問題の解である、という定理がある（Sundaram の本の第７章を参照）。しかしこれは、実はこの種の問題には使えない。というのは、たとえば前の章で述べた関数

f (x) = x1 x2 ...xnなどは凹関数ではないからである。第９章で示したようにこの関数に対する上の問題の解はラグランジュの原理で計算できるのだが、これを処理できないようでは力不足である。というわけで、ここでは凹関数を拡張した「準凹関数 (quasi-concave function)」という概念を定義しておきたい。
凸集合 A ⊂ Rn 上で定義された関数 f が準凹であるとは、任意の x, y ∈ A と t ∈ [0, 1]に対して

f ((1 − t)x + ty) ≥ min{f (x), f (y)}が成り立つことである。
図で書けばわかるが、f が準凹であるとは、f の等高線の上側集合が凸集合であるというのと同値である。したがって一変数ならば、単調な関数はすべて準凹である。一方で、

f (x, y) = x2 + y 2 は準凹ではない——というより、まさに第９章で述べたように、「予算線に下側から接する」等高線を持つ関数は準凹ではないのである。これが、次の定理が成り立つ本質的な理由になっている。
定理５：A は内部が非空な凸集合で、f : A → R は連続かつ準凹であるとし、x∗ で全微分可能、Df (x∗ ) ≫ 0 であり、L(x, λ) = f (x) + λ(m − p · x)としたときにある λ∗ が存在してDL(x∗ , λ∗ ) = (0, 0)が成り立つとする。さらに、ある x+ ∈ A において p · x+ < m になるとする。このとき、

x∗ は次の問題：
maxf (x)subject to. p · x ≤ mx∈Aの解である。
証明：仮に x∗ が解でなかったとしよう。このとき、うまく x を取れば、x ∈ A, p · x ≤ mで、さらに f (x) > f (x∗ ) であるようなものを取ってくることができる。f は連続なので、必要ならば十分小さな s > 0 に対して (1 − s)x + sx+ を x と取り替えてやっても、相変
わらず f ((1 − s)x + sx+ ) > f (x∗ ) が成り立ち、しかもp · [(1 − s)x + sx+ )] = (1 − s)p · x + sp · x+ < (1 − s)m + sm = mである。よって、(1 − s)x + sx+ をあらかじめ x と交換しておくことで、p · x < m と最初から仮定してよい。
さて、

DL(x∗ , λ∗ ) = (Df (x∗ ) − λ∗ pT , m − p · x∗ ) = (0, 0)である。特に最後の座標から、p · x∗ = m であり、また残りからDf (x∗ ) = λ∗ pTである。Df (x∗ ) ≫ 0 なので λ∗ > 0 であることに注意。そこで

g(t) = f ((1 − t)x∗ + tx)

と定義しよう。f は x∗ で全微分可能なので g は t = 0 で微分可能で、

g ′ (0) = Df (x∗ )(x − x∗ )= λ∗ p · (x − x∗ )= λ∗ [p · x − p · x∗ ]= λ∗ [p · x − m]<0がわかる。
一方、f は準凹なので、g(t) ≥ min{f (x∗ ), f (x)} = f (x∗ ) = g(0)であり、したがって微分の定義から、

g(t) − g(0)≥0t↓0tg ′ (0) = limでなければならない。この２つの不等号は互いに反対向きであるため、矛盾である。よってこのようなことはありえず、x∗ は解でなければならない。 ■なお、証明はしないが、二変数の準凹関数には以下のような判定定理がある。証明はDebreu (1952) と Otani (1983) を参照（おそらく、この定理の証明がきちんと載っている教科書は、市販レベルでは存在しない）。
定理６：f が開凸集合 A 上で二階連続微分可能であり、また Df (x) ̸= 0 が常に成り立つ
とき、

2fxy fx fy − fxx fy2 − fyy fx2 ≥ 0であれば、f は準凹である。