Processing math: 97%

拘束のある問題

提供: Internet Web School

(版間での差分)
1 行: 1 行:
==等式拘束のある問題==
==等式拘束のある問題==
 +
 +
 +
 +
==陰関数定理とラグランジュ乗数==
 +
 +
以下の問題を考える.
 +
 +
 +
<math>L(x,y)=x+y</math>とするとき,
 +
半径1の円周
 +
 +
<math>x^2+y^2=1  \qquad (1)</math>
 +
 +
上の点<math>(x,y)</math>で<math>L(x,y)</math>の最大にするものを求めよ。
 +
 +
 +
===関数の極値条件===
 +
 +
実数値関数<math>F(x)</math>が<math>x=x_0</math>で極小値または極大値をとり,かつ,<math>x=x_0</math>で微分可能であれば,
 +
 +
<math>F(x)</math>の<math>x=x_0</math>での微分係数は<math>0</math>である。
 +
 +
<math>\frac{dF}{dx}(x_0) = 0</math>
 +
 +
===陰関数===
 +
 +
 +
半径1の円の方程式
 +
 +
<math>x_2+y_2=1\qquad (1)</math>
 +
 +
に注目する。判りやすいように,
 +
 +
<math>1\ge x \ge -1,1 \ge y \ge 0</math>
 +
としておく.
 +
 +
<math>g(x)=\sqrt{1-x^2}</math>
 +
とすると,
 +
<math>1\ge x \ge -1,1 \ge y \ge 0</math>では<math>(1)</math>の方程式を満たす<math>x,y</math>については
 +
<math>y=g(x)</math>
 +
という関係が成り立っている.
 +
 +
この<math>g(x)</math>という関数は,<math>(1)</math>式の中には出てこない.<math>(1)</math>からこのように間接的に導き出される関数を陰関数と呼ぶ.
 +
 +
 +
一般化すれば特定の条件のもとに
 +
<math>f(x,y)=0</math>という式から陰関数<math>y=g(x)</math>が定義される。
 +
 +
上の例では <math>f(x,y)=x^2+y^2-1</math>
 +
 +
しかし,何時でも上の例のように,<math>f(x,y)=0<math>から陰関数<math>y=(x)<math>が定義されるわけではない.
 +
良く知られる定理では
 +
 +
 +
 +
===陰関数定理===
 +
 +
ある領域D<math>\subseteq R\times R</math>で関数<math>f(x,y)</math>が連続でかつ,<math>x,y</math>について偏微分可能で,
 +
その偏導関数
 +
 +
<math>\frac{\partial f}{\partial x}(x,y) \qquad (1)</math>
 +
 +
<math>\frac{\partial f}{\partial y}(x,y) \qquad (2)</math>
 +
も<math>(x,y)</math>について連続とする。
 +
 +
D内の1点<math>(x_0,y_0)</math>で
 +
 +
<math>f(x_0,y_0)=0</math>
 +
 +
であり,
 +
 +
<math>\frac{\partial f}{\partial y}(x_0,y_0)\neq 0 \qquda (4)</math>
 +
 +
とする。
 +
このとき,<math>x_0</math>を含む<math>[a,b]</math>とその上の連続関数<math>g(x)</math>が与えられ
 +
 +
(1) 区間<math>[a,b]</math>上で<math>f(x,g(x))=0</math>
 +
 +
(2) <math>y_0=g(x_0)</math>
 +
 +
(3) 区間<math>[a,b]</math>上で,
 +
 +
<math>\frac{dy}{dx}=-\frac{\partial f / \partial x}{\partial f / \partial y} \qquad (5)</math>
 +
 +
===ラグランジュ乗数法===
 +
 +
 +
関数<math>L(x,y)</math>が,制約条件
 +
<math>f(x,y)=0</math>
 +
の元に<math>(x,y)=(x_0,y_0)</math>で極値(極大値か極小値)をとるとする。
 +
 +
<math>L(x,y)</math>が<math>(x,y)</math>について微分可能な関数で,
 +
関数<math>f(x,y)<math>は<math>(x_0,y_0)</math>が上の陰関数定理を適用できる条件を満たしているものとする。
 +
 +
すると,<math>x_0</math>の近傍で関数<math>g(x)</math>が存在して,<math>x_0</math>のその近傍では
 +
 +
<math>f(x,g(x))=0</math> が成り立ち,<math>y_0=g(x_0)</math>,<math>f(x_0,g(x_0))=0</math>も成り立っている.
 +
 +
すると,関数<math>L(x,y)</math>は<math>(x_0,y_0)</math>で極値(極大値か極小値)をとるから
 +
<math>F(x)=L(x,g(x))</math>も<math>x=x_0</math>で極値を取る.
 +
 +
 +
 +
 +
極値条件により
 +
 +
 +
<math>\frac{dF}{dx}(x_0)=0 \qquad  (6)</math>
 +
である.
 +
 +
この<math>x</math>についての微分を求めると<math>F(x)</math>は合成関数である
 +
 +
<math>
 +
\frac{dF}{dx}(x_0)=\frac{\partial}{\partial x}L(x_0,g(x_0))+\frac{\partial}{\partial y}L(x_0,g(x_0))\frac{d}{dx}g(x_0) \qquad (7) \\
 +
\frac{dy}{dx}=-\frac{\partial f / \partial x}{\partial f / \partial y} \qquad(8)
 +
</math>
 +
 +
<math>y=g(x)</math>であるから<math>(8)</math>式を上の<math>(7)</math>式に代入し
 +
 +
 +
 +
<math>\lambda=\frac{\partial}{\partial y}L(x_0,g(x_0))\{-\frac{\partial f}{\partial y}\}^{-1} \qquad (9)</math>
 +
 +
という変数を使うと,
 +
 +
<math>0=\frac{dF}{dx}(x_0)=\frac{\partial}{\partial x}L(x_0,g(x_0))+\lambda\frac{\partial}{\partial x}f(x_0,g(x_0)) \qquad (10)</math>
 +
また
 +
 +
<math>\lambda \frac{\partial}{\partial y}f(x_0,g(x_0)=-\frac{\partial}{\partial y}L(x_0,g(x)) \qquad (11)</math>
 +
 +
から
 +
 +
<math>0=\frac{\partial}{\partial y}L(x_0,g(x_0))+\lambda \frac{\partial}{\partial y}f(x_0,g(x_0)) \qquad (12) </math>
 +
 +
すなわち<math>\lambda</math>という新しい変数を使って
 +
<math>H(x,y,\lambda)=L(x,y)+\lambda f(x,y) \qquad (13)</math>
 +
という関数を造ると:
 +
<math>\lceil</math>関数<math>L(x,y)<m/ath>が制約条件
 +
<math>f(x,y)=0</math>
 +
の元に
 +
<math>(x,y)=(x_0,y_0)</math>で極値(極大値か極小値)をとる
 +
という条件からHについての制約のない場合の極値条件
 +
 +
<math>
 +
\frac{\partial}{\partial x}H(x_0,y_0,\lambda)=0  \qquad (14) \\
 +
\frac{\partial}{\partial y}H(x_0,y_0,\lambda)=0  \qquad (15) \\
 +
<math>\frac{\partial}{\partial \lambda}H(x_0,y_0,\lambda)=f(x_0,y_0)=0 \qquad (16)
 +
</math>
 +
が導かれる.。
 +
 +
要するに,制約条件付きの極値問題から,<math>\lambda</math>という人工的な変数を使って
 +
<math>目的の関数+\lambda\times (制約条件を表す関数)</math>
 +
の制約条件のない場合の極値条件が導かれる.
 +
ただしこの議論は<math>\lceil</math>その点が最大(小)値を与える<math>\rfloor \Rightarrow \lceil</math>
 +
その点が極値が与える<math>\rfloor \Rightarrow \lceil</math> その点での<math>微分係数=0</math>
 +
 +
 +
という必要条件の連鎖でるので注意が必要である.
 +
 +
<math>\lceil<math>微分係数=0<math>\rfloor<math>は必要条件であるから,
 +
これが満たされても,極値かどうかチェックの必要があり,さらには<math>H</math>の極値を与える<math>(x_0,y_0)</math>が求められたとしても,
 +
それが最大(小)値を与えるのか確かめる必要がある。
 +
 +
また,少なくとも<math>L</math>と<math>f</math>が<math>x,y</math>について微分可能であることも必要である.
 +
 +
ここで使われた<math>\lambda</math>をラグランジュ乗数と呼ばれる.
 +
 +
 +
 +
 +

2020年11月25日 (水) 13:16時点における版

目次

[非表示]

等式拘束のある問題

陰関数定理とラグランジュ乗数

以下の問題を考える.


L(x,y)=x+yとするとき, 半径1の円周

x2+y2=1(1)

上の点(x,y)L(x,y)の最大にするものを求めよ。


関数の極値条件

実数値関数F(x)x=x0で極小値または極大値をとり,かつ,x=x0で微分可能であれば,

F(x)x=x0での微分係数は0である。

dFdx(x0)=0

陰関数

半径1の円の方程式

x2+y2=1(1)

に注目する。判りやすいように,

1x1,1y0 としておく.

g(x)=1x2 とすると, 1x1,1y0では(1)の方程式を満たすx,yについては y=g(x) という関係が成り立っている.

このg(x)という関数は,(1)式の中には出てこない.(1)からこのように間接的に導き出される関数を陰関数と呼ぶ.


一般化すれば特定の条件のもとに f(x,y)=0という式から陰関数y=g(x)が定義される。

上の例では f(x,y)=x2+y21

しかし,何時でも上の例のように,f(x,y)=0<math><math>y=(x)<math>.======D<math>⊆R×Rで関数f(x,y)が連続でかつ,x,yについて偏微分可能で, その偏導関数

fx(x,y)(1)

fy(x,y)(2)(x,y)について連続とする。

D内の1点(x0,y0)

f(x0,y0)=0

であり,

fy(x0,y0)0\qquda(4)

とする。 このとき,x0を含む[a,b]とその上の連続関数g(x)が与えられ

(1) 区間[a,b]上でf(x,g(x))=0

(2) y0=g(x0)

(3) 区間[a,b]上で,

dydx=f/xf/y(5)

ラグランジュ乗数法

関数L(x,y)が,制約条件 f(x,y)=0 の元に(x,y)=(x0,y0)で極値(極大値か極小値)をとるとする。

L(x,y)(x,y)について微分可能な関数で, 関数f(x,y)<math><math>(x0,y0)が上の陰関数定理を適用できる条件を満たしているものとする。

すると,x0の近傍で関数g(x)が存在して,x0のその近傍では

f(x,g(x))=0 が成り立ち,y0=g(x0),f(x0,g(x0))=0も成り立っている.

すると,関数L(x,y)(x0,y0)で極値(極大値か極小値)をとるから F(x)=L(x,g(x))x=x0で極値を取る.



極値条件により


dFdx(x0)=0(6) である.

このxについての微分を求めるとF(x)は合成関数である

dFdx(x0)=xL(x0,g(x0))+yL(x0,g(x0))ddxg(x0)(7)dydx=f/xf/y(8)

y=g(x)であるから(8)式を上の(7)式に代入し


λ=yL(x0,g(x0)){fy}1(9)

という変数を使うと,

0=dFdx(x0)=xL(x0,g(x0))+λxf(x0,g(x0))(10) また

λyf(x0,g(x0)=yL(x0,g(x))(11)

から

0=yL(x0,g(x0))+λyf(x0,g(x0))(12)

すなわちλという新しい変数を使って H(x,y,λ)=L(x,y)+λf(x,y)(13) という関数を造ると関数L(x,y)<m/ath><math>f(x,y)=0 の元に (x,y)=(x0,y0)で極値(極大値か極小値)をとる という条件からHについての制約のない場合の極値条件

xH(x0,y0,λ)=0(14)yH(x0,y0,λ)=0(15)<math>λH(x0,y0,λ)=f(x0,y0)=0(16) が導かれる.。

要するに,制約条件付きの極値問題から,λという人工的な変数を使って +λ×() の制約条件のない場合の極値条件が導かれる. ただしこの議論はその点が最大(小)値を与える その点が極値が与える その点での=0


という必要条件の連鎖でるので注意が必要である.

<math>0<math><math><math>Hの極値を与える(x0,y0)が求められたとしても, それが最大(小)値を与えるのか確かめる必要がある。

また,少なくともLfx,yについて微分可能であることも必要である.

ここで使われたλをラグランジュ乗数と呼ばれる.





l:(x1,x2,,xn)Rn↦∈R

ˉx=(ˉx1,ˉx2,,ˉxn)m個の制約条件

g1(ˉx1,ˉx2,,ˉxn)=0g2(ˉx1,ˉx2,,ˉxn)=0g3(ˉx1,ˉx2,,ˉxn)=0gm(ˉx1,ˉx2,,ˉxn)=0

のもとでの極少(極大)値をとるものとする.さらにm個のn次元 ベクトル

g1x(ˉx)T=(g1x1(ˉx),g1x2(ˉx),g1xn(ˉx))g2x(ˉx)T=(g2x1(ˉx),g2x2(ˉx),g2xn(ˉx))g3x(ˉx)T=(g3x1(ˉx),g3x2(ˉx),g3xn(ˉx))gmx(ˉx)T=(gmx1(ˉx),gmx2(ˉx),gmxn(ˉx))

が一次独立とする.このとき,一変数関数の場合と同様,以下が成立つ.すなわち, m次元のラグランジュ乗数ベクトル

λ=(λ1,λ2,,λm) が存在し,

l(x)+λ1g1(x)+λ2g2(x)++λmgm(x)

ˉx=(ˉx1,ˉx2,,ˉxn)で停留条件を充す.

すなわち

x1[l(x)+λ1g1(x)+λ2g2(x)++λmgm(x)]=0x2[l(x)+λ1g1(x)+λ2g2(x)++λmgm(x)]=0xn[l(x)+λ1g1(x)+λ2g2(x)++λmgm(x)]=0


が成りたつ.


不等式拘束のある問題

前項では,等式拘束問題を扱った.この項では不等式拘束問題を扱う. 先ず,Rmの部分集合

P={p|p=(p1,p2,,pm)TRm,p10,p20,,pm0}

を定義しておく.この(正錐)Pを使って,p,qRmの 順序(大小)を

pqpqP

で定義する.

RnからRmへの微分可能な写像

G:x=(x1,x2,,xn)RnG(x)=(g1(x)g2(x)g3(x)gm(x))Rm で定義されるものとする.

不等式制約

G(x)=(g1(x)g2(x)g3(x)gm(x))0=(0000)

について,この項では以下のクーン・タッカーの条件が成立つものとする.


クーン・タッカーの条件

G(x)0 を充たす任意のxRnについて

G(x)+dGdxT(x)k0

となる k=(k1,k2,,kn)TRnが存在する.

ただし,


dGdxT(x)=(g1x1(x)g1x2(x)g1xm(x)g2x1(x)g2x2(x)g2xm(x)gmx1(x)gmx2(x)gmxn(x))

ここで, G(x)0 は順序(大小関係)を

P={p|p=(p1,p2,,pm)TRm,p10,p20,,pm0}pqpqP

定義する場合,

g1(x)0,g2(x)0,g3(x)0,,gm(x)0

と同値になる.

停留条件

以上のクーン・タッカーの条件下で,


微分可能な写像 l:(x1,x2,,xn)Rn↦∈R

が不等式制約G(x)0 のもとで

ˉx=(ˉx1,ˉx2,,ˉxn) で極少(極大)値をとるものとすると,m次元のラグランジュ乗数ベクトル

λ=(λ1,λ2,,λm)0 が存在し,

l(x)+G(x)λ=l(x)+λ1g1(x)+λ2g2(x)++λmgm(x)

は,ˉx=(ˉx1,ˉx2,,ˉxn)で停留条件を充たす.


すなわち

dldx(ˉx)+dGdx(ˉx)λ=(lx1(ˉx)lx2(ˉx)lxn(ˉx))+(g1x1(x)g2x1(x)gmx1(x)g1x2(x)g2x2(x)gmx2(x)g1xn(x)g2xn(x)gmxn(x))(λ1λ2λm)=(000)

が成りたつ.

さらにˉx=(ˉx1,ˉx2,,ˉxn)については,

G(\bar{\bf x}){\bf \lambda}=\lambda_1 g_1(\bar{\bf x})+\lambda_2 g_2(\bar{\bf x}) + \cdots +\lambda_m g_m(\bar{\bf x}) =0

が成立つ.

{\bf \lambda}=(\lambda_1,\lambda_2,\cdots,\lambda_m) \ge {\bf 0}

\lambda_1 \ge 0,\lambda_2\ge 0,\cdots,\lambda_m \ge 0

と同値になる.

個人用ツール