ラグランジュの未定乗数法

ミクロ経済学を学ぶ上で欠かせないツールがラグランジュの未定乗数法。僕はこれのオリジナルな形が何であったのか知りたい。非線形計画法の教科書でも見ればわかるのかしら。

経済学ではある予算制約や技術制約のもとで効用やら産出を最大化させるような問題を考える。それを助けてくれる数学がこのラグランジュの未定乗数法。最大化したいn変数の目的関数u(x_1,\ldots,x_n)があって、m個の制約条件g_i(x_1,\ldots,x_n)\leq b_i但し、i=1,2,\ldots,mがあるとする。そうすると、この問題はこういうように書く。

\large \max_{x_1,\ldots,x_n} u(x_1,\ldots,x_n)
such that \large g_i(x_1,\ldots,x_n)\leq b_i

「such that」のところはsubject toでもよいし、省略してs.t.とすることが多い。

最小化問題の時は目的関数に-1をかけて最大化問題にしてやればよいし、等号制約の時は同じ制約条件で不等号の向きを変えたモノを足せばよい。だから、上の形は案外かなり一般的な形になっている。ちなみにbiは定数。上のものをちょっとだけ変更。制約条件が0以下、という形にしたい。

\large \max_{x_1,\ldots,x_n} u(x_1,\ldots,x_n)
such that \large g_i(x_1,\ldots,x_n) - b_i \leq 0


さて、これをラグランジュの未定乗数法を使って解きたい。解くといってもいきなりx_1=なんとか、というような解が求まるわけではなくて、せいぜい必要条件ぐらいしかわからなかったりで、ガッカリ。しかも大抵の場合、非線形な関数で表される連立方程式になるので、むしろこれをすんなり解けるように問題を組み立てるのが研究者としては成功への近道なんじゃないかとさえ思えてくる。

ラグランジュ関数Lなるものを作る。λiという新たな変数を導入して、

\large L(x_1,\ldots,x_n,\lambda_1,\ldots,\lambda_m)= u(x_1,\ldots,x_n) - \sum \lambda_i( g_i(x_1,\ldots,x_n) - b_i)

という関数を作る。これをラグランジュ関数という。この関数を(n+m)個の各変数で偏微分して0とおいてやる。厳密に言うと制約条件が等号で満たされるかどうか、という場合分けが必要になってくるので、0とおいてやるのではなく、他にいろいろと条件が付く。細かいことは忘れた。

実際問題として、中級以下の経済学の教科書を勉強していて(非負条件以外の)制約条件が2本以上ある問題ってほとんどないから、次のようなタイプの問題を考えるだけで十分。


\large \max_{x_1,\ldots,x_n} u(x_1,\ldots,x_n)
such that \large g(x_1,\ldots,x_n) - b \leq 0
x_i \geq 0,\quad \text{for all } i

3行目は財の非負制約。これも殆どの場合無視してよい。しかも2行目の制約式の不等号制約も等号と考えて差し支えない。等号でないとすれば、それは制約条件のない最大化問題となりtrivialなものだからね。だからある程度のレベルまでの教科書だと、最初から問題は次のような設定になっていることが多い。

\large \max_{x_1,\ldots,x_n} u(x_1,\ldots,x_n)
such that \large g(x_1,\ldots,x_n) = b

これの一階の条件は、

 \large \frac{\partial u}{\partial x_i}-\lambda \frac{\partial g}{\partial x_i}=0

というn個の方程式。これに元々の予算制約式を使って(解ければ)解く。