拉格朗日乘数法,一种计算条件极值的方式

一、拉格朗日乘数法简介

在日常的生产生活中,当我们要要安排生产生活计划的时候,常常会在现实物理资源约束的条件下,计算得到收益最大或者损失最小的计划; 像这种对自变量有附加条件的极值称为条件极值;拉格朗日乘数法是一种直接计算解决条件极值的方法;

拉格朗日乘数法的定义如下:

设有 f(x,y),φ(xy) 两个函数,并且两者都有一阶连续偏导数,则做拉格朗日函数为

F(x,y,λ)=f(x,y)+λφ(xy)

令函数F的各个偏导数 Fx=0,Fy=0,Fλ=0,计算各个偏导数并联立方程得到

{fx(x,y)+λφx(x,y)=0fy(x,y)+λφy(x,y)=0φ(x,y)=0

由此方程组解出拉格朗日函数稳定点 (x0y0λ0),则 (x0y0) 就是函数 f(x,y) 在附加条件 φ(x,y)=0 下的可能极值点;

二、拉格朗日乘数法的推导

目标函数

(1)f(x,y)=0

约束条件

(2)φ(xy)=0

如果函数(1)在点 (x0,y0) 得到极值,那么首先会满足约束条件

(3)φ(x0y0)=0

f(x,y)φ(xy)在点 (x0,y0) 的某个邻域内有连续偏导数,且满足

φy(x0y0)0

由隐函数存在定理,式(2)在点 (x0,y0) 的某邻域内能唯一确定一个单值可导且具有连续导数的函数 y=y(x) ,并且有 y0=f(x0),以及

(4)dy dx|x=x0=φx(x0,y0)φy(x0,y0)

y=y(x) 带入公式(1)得到

(5)z=f(x,y(x))

公式(5)也同公式(1)在 (x0,y0) 处取的极值,有一元函数取得极值的必要条件可得

(6)dz dx|x=x0=fx(x0,y0)+fy(x0,y0)dy dx|x=x0=0

将公式(4)带入公式(6)得到

(7)fx(x0,y0)fy(x0,y0)φx(x0,y0)φy(x0,y0)=0

为了解出 (x0,y0) ,引入辅助变量

λ0=fy(x0,y0)φy(x0,y0)

则公式(3)和公式(7)均成立等价于

(8){fx(x0,y0)+λ0φx(x0,y0)=0fy(x0,y0)+λ0φy(x0,y0)=0φ(x0,y0)=0

f(x,y),φ(xy) 给定的前提下,我们可以通过公式(8)计算得到 (x0,y0,λ0) ,我们可根据公式(8)的特点构造以下函数

F(x,y,λ)=f(x,y)+λϕ(x,y)

可以看到公式(8)等价 F(x,y,λ) 的以下偏导数

{Fx(x0,y0,λ0)=0Fy(x0,y0,λ0)=0Fλ(x0,y0,λ0)=0

通过以上推演过程,函数 F(x,y,λ) 称为拉格朗日函数,参数λ称为拉格朗日乘数,点 (x0,y0,λ0) 称为 F(x,y,λ) 的驻点或稳定点.

posted @   无风听海  阅读(1836)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示