Tuesday, February 12, 2013

拉格朗日乘子 找到能让设出的隐函数的微分为零的未知数的值

拉格朗日乘数
维基百科,自由的百科全书
跳转至: 导航搜索
微积分学
\text{e} = \lim_{n\to\infty} \left(1+\frac{1}{n}\right)^n
函数 · 导数 · 微分 · 积分
图1:绿线标出的是约束g(x,y) = c的点的轨迹。蓝线是f的等高线。箭头表示斜率,和等高线的法线平行。
数学最优化问题中,拉格朗日乘数法(以数学家约瑟夫·拉格朗日命名)是一种寻找变量受一个或多个条件所限制的多元函数极值的方法。这种方法将一个有n 个变量与k 个约束条件的最优化问题转换为一个有n + k个变量的方程组的极值问题,其变量不受任何约束。这种方法引入了一种新的标量未知数,即拉格朗日乘数:约束方程的梯度(gradient)的线性组合里每个向量的系数。
简单举例:
最大化 f(x, y) \,
受限于 g(x, y) = c.\,
引入新变量拉格朗日乘数\lambda,即可求解下列拉格朗日方程
 \Lambda(x,y,\lambda) = f(x,y) + \lambda \cdot \Big(g(x,y)-c\Big),
此方法的证明牵涉到偏微分全微分链法,从而找到能让设出的隐函数的微分为零的未知数的值。

目录

[隐藏]

[编辑] 介绍

微积分中最常见的问题之一是求一个函数的极大极小值(极值)。但是很多时候找到极值函数的显式表达是很困难的,特别是当函数有先决条件或约束时。拉格朗日乘数则提供了一个非常便利方法来解决这类问题,而避开显式地引入约束和求解外部变量。
先看一个二维的例子:假设有函数:f(x, y),要求其极值(最大值/最小值),且满足条件
g\left( x,y \right) = c,
c 为常数。對不同d_n的值,不难想像出
f \left( x, y \right)=d_n
的等高线。而方程 g 的等高线正好是 g ( x, y ) = c 。想像我们沿着 g = c 的等高线走;因为大部分情况下 f  g 的等高线不会重合,但在有解的情况下,这两条线会相交。想像此时我们移动 g = c 上的点,因为 f 是连续的方程,我们因此能走到f \left( x, y \right)=d_n更高或更低的等高线上,也就是说d_n可以变大或变小。只有当 g = c f \left( x, y \right)=d_n相切,也就是说,此时,我们正同时沿着 g = c f \left( x, y \right)=d_n走。这种情况下,会出现极值鞍点
气象图中就很常出现这样的例子,当温度和气压两列等高线同时出现的时候,切点就意味着约束极值的存在。
向量的形式来表达的话,我们说相切的性质在此意味着 f  g 的斜率在某点上平行。此时引入一个未知标量λ,并求解:
 \nabla \Big[f \left(x, y \right) + \lambda \left(g \left(x, y \right) - c \right) \Big] = 0
λ ≠ 0.
一旦求出λ的值,将其套入下式,易求在无约束极值和极值所对应的点。
 F \left( x , y \right) =  f \left( x , y \right) + \lambda \left( g \left( x , y \right) - c \right)
新方程F(x,y)在达到极值时与f(x,y)相等,因为F(x,y)达到极值时g(x,y)-c总等于零。

[编辑] 拉格朗日乘数的运用方法

f定义为在Rn上的方程,约束为gkx)= ck(或将约束左移得到gk(x) − ck = 0)。定义拉格朗日Λ
\Lambda(\mathbf x, \boldsymbol \lambda) = f + \sum_k \lambda_k(g_k-c_k).
注意极值的条件和约束现在就都被记录到一个式子里了:
\nabla \Lambda = 0 \Leftrightarrow \nabla f = - \sum_k \lambda_k \nabla\ g_k,

\nabla_{\mathbf \lambda} \Lambda = 0 \Leftrightarrow g_k = c_k.
拉格朗日乘数常被用作表达最大增长值。原因是从式子:
-\frac{\partial \Lambda}{\partial {c_k}} = \lambda_k.
中我们可以看出λk是当方程在被约束条件下,能够达到的最大增长率。拉格朗日力学就使用到这个原理。
拉格朗日乘数法在Karush-Kuhn-Tucker最優化條件被推广。

[编辑] 例子

No comments:

Post a Comment