现代设计方法拉格朗日乘子法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
此即式(3-86)的xL1 结 果xL2。 这L个 新0 定义的函数L(3称- 8为8) 拉格 朗日(Lagrange)函数。
若将式(3-86)代人式(3-80),得:
df
g * x1
dx1
g * x2
dx2
dg
(3 89)
这表明:在极值点附近,L为目标函数f 随约束条件g的微小变化而变化的比率。
即
df
f * x1
dx1
f * x2
dx2
0
(3 80)
当有等式约束时,除了以上的关系式仍成立外,还必
须满足:
dg
g * x1
dx1
g * x2
dx2
0
(3 81)
这就是说,在等式约束条件下,使f为极小的dx1与dx2 已不能任意选取,必须满足式(3-81)。由式(3-80)及式
(3-81)可得:
拉格朗日乘子法是一种常用且有效的方法。
一、等式约束下的拉格朗日乘子法及其C语言程序
拉格朗日乘子法的计算方法
(1)等式约束时极值存在的必要条件
对于二元函数来说,设目标函数为f (x1,x2), 等式约束为:g(x1,x2)=0。在无约束时,极值点存 在的必要条件为:
f * f * 0 x1 x2
约束条件,即:
gK (X) 0,K 1,2, , m n 则拉格朗日函数为:
(3- 92)
m
L(X, ) f (X) K gK (X) f (X) T g(X) (3- 93) K 1
此时函数L为极小的必要条件为:
L xi L
0 0
K
i 1,2, , n K 1,2, , m
现代设计方法
第三章 非线性规划
§3-4 约束条件下多变量函数的优化设计方法
以上讨论的都是无约束条件时非线性函数的寻
优方法。但是在很多实际的非线性规划问题中, 其变量的取值都有一定的限制。也就是说,非线 性规划问题一般是有约束条件的寻优问题。所以 本节将介绍有约束条件的寻优问题。约束条件可 分为两类:等式约束与不等式约束。处理等式约 束问题与不等式约束问题的方法也有所不同。
综上所述,通过应用拉格朗日乘子,可 使求等式约束条件下函数f 的极小点,成为 求拉格朗日函数L的驻点。这种引进待定乘 子,将有等式约束的寻优问题转化为无约 束的寻优问题的做法,称为拉格朗日乘子 法,又叫升维法。
例:f (X) 60 10x1 4x2 x12 x22 x1x2,等式约束为 g(X) x1 x2 8 0,试用拉格朗日乘子法求极小。
(3 - 94)
这里未知数 xi (i=l,2,...,n)及 K (K=1,2,...,m) 共有n+m个,而式(3-94)中也正有n+m个方程,故能求
解。由于引入了 ,使变量及方程的数目都增加了。
为便于在计算机上利用直接寻优方法进行迭代计算,
一般引入新的函数:
Z
n i 1
L xi
2
m
K 1
gK (X)
2
(3 - 95)
这样,有约束的原问题就转换成为无约束的问题
了。然后,利用无约束的多变量函数的寻优方法(例如 单纯形加速法等)对函数Z求极小值,即可得原问题的 最优解。等式约束条件下拉格朗日乘子法的C语言程 序见附录。
二、不等式约束下的拉格朗日乘子法
对具有不等式约束或兼有不等式约束和 等式约束的多变量函数的寻优问题。常用 拉格朗日(Lagrange)乘于法。
/ /
x1 x1
f * g *
/ /
x2 x2
令此比值等于一个可正可负的常数 λ:
(3 84)
f * g *
/ x1 / x1
f * g *
/ x2 / x2
(3 85)
则λ即称为拉格朗日待定乘数,或简称为拉格朗日乘子。 于是由式(3-85),连同g(x1,x2)=0,得:
gf(xx1*1, x
dx2 dx1
f f
* *
/ /
x1 x2
(3 82)
dx2 dx1
g * g *
/ /
x1 x2
即
f * x1
g * x2
f * x2
g * x1
0
(3 83)
这就是在等式约束下使目标函数 f 为极小的必要条件
(2)拉格朗日乘子法的计算方法及步骤
式(3-83)可改写为:
f * g *
拉格朗日乘子法的计算方法
拉格朗日乘子法不仅可以用于解具有等 式约束的非线性规划问题,而且也可以用 于解具有不等式约束的非线性规划问题。
对于不等式约束条件,可设法引入松弛 变量,使不等式变为等式。然后,按(一)中 所述的方法求解。
例如,若不等式约束为:
g(X ) ax1 bx2 c 0
(3 - 96)
我们引入松弛变量x3。由于在非线性规划中,没有变
量为非负的约束,即不要求xi≥0,(其中i=1, 2, …, n)。
因此,为保证不等式成立,引入的松弛变量均用平
方项,以保证该引入项为非负的。由此可取:
g( X ) ax1 bx2 c x32 0
(3 - 97)
这样就可把不等式约束变换为等式约束.然后,
再用拉格朗日乘子法求解。
例:约束条件为:
g1(X) 3x1 4x2 6 0
g
2
(X)
x1
4x2
2
0
(3- 98) (3- 99)
求目标函数
S f (X) 2x12 2x1x2 2x22 6x1 min (3 -100)
第一步:加松弛变量x3、x4,使不等式约束变换为等
式约束:
令
L f g 60 10x1 4x2 x12 x22 x1x2
(x1 x2 8)
L
x1
10 2x1
x2
0
L
x2
4 2x2
x1
0
L
பைடு நூலகம்
( x1
x2
8)
0
解此联立方程组,得:
(3- 90) (3 91)
x1* 5,x2* 3,* 3,f * 17
当目标函数为n元函数f (X),(X为n维向量)且有m个等式
g * x1 2)
0
0
f * g * 0
x2 x2
(3 86)
解此联立方程式可得x1* ,x2* ,λ* ,即求出极值点。
方程组(3-86)相当于求解一个无约束的函数
:
L f g 的极L值(x点1,。x2,此函) 数f极(x1值,x点2 )存 在g(的x1,必x要2 ) 条件为(3: 87)
g1(X) 3x1 4x2 6 x32 0
(3 -101)
g2 (X)
x1
4x2
2
x42
0
(3 -102)
第二步:引入拉格朗日函数