约束条件对最优化问题的影响
2020-03-17张立国
张立国
【摘要】本文结合两个经济学实例说明约束条件对最优化问题的影响,分析约束条件使目标函数的最优选择出现偏差的原因,并给出具体的解决方法.
【关键词】约束条件;可行域;目标函数
在经济学中,最常见的选择标准是最大化目标(如厂商利润最大化、消费者效用最大化等)或最小化目标(如在给定产出下使成本最小化等),这些追求目标函数的最大化问题和最小化问题统称最优化问题.当目标函数受到条件约束时,最优化问题就成了条件极值问题.
由于约束条件的影响,容易造成目标函数的最优选择出现偏差,因而需要深入研究和解析产生偏差的原因.有些学者也做过这方面的讨论,但不够彻底.本文以两类常见经济学案例为引例,说明约束条件对最优化问题的影响,分析约束条件使目标函数的最优选择出现偏差的原因,并给出具体的解决方法.
一、引例与解法错误
例1 设某工厂生产甲、乙两种产品,当产量分别为x,y(单位:千件)时,其利润函数为L(x,y)=6x-x2+16y-4y2-2(单位:万元).
已知生产这两种产品时,每千件产品各需消耗原料2000 kg,现有该原料12000 kg,问:两种产品各生产多少千件时,总利润最大?最大利润为多少?
解 约束条件2000x+2000y=12000,即x+y=6.因此,问题是在x+y=6的条件下,求利润函数L(x,y)的最大值.把x+y=6变形为y=6-x,代入L(x,y),得F(x)=-5x2+38x-50.对变量x求导并令其为零,得F′(x)=-10x+38=0,解得x=3.8,y=2.2.
F″(x)=-10<0,因此当x=3.8时,F(x)有极大值,且F(3.8)=22.2(万元).因为只有一个驻点(3.8,2.2),且实际问题的最大值是存在的,所以驻点(3.8,2.2)是L(x,y)的最大值点,最大值为L(3.8,2.2)=22.2(万元).
注:事实上,当x=3,y=2时,L(3,2)=23(万元),即不需消耗所有原料储量,产值已经超过22.2万元.此题解法的错误在于把不等式(平面区域)约束条件看成等式(直线)约束条件,导致结果出现偏差.
例2 某公司两个工厂生产同样的产品,所需的成本不同:A工厂生产x单位产品与B工厂生产y单位产品时的总成本为C(x,y)=x2+2y2+5xy+700.
若公司的生产任务是500个单位产品,问:如何分配任务才能使总成本最小?
解 约束条件为x+y=500,因此,问题是在x+y=500的条件下求总成本函数C(x,y)的最小值.把x+y=500变形为y=500-x,代入C(x,y),得F(x)=-2x2+500x+500700.
对变量x求导并令其为零,得F′(x)=-4x+500=0,解得x=125,则y=375.此时总成本为531950.
注:不难验证(125,375)是目标函数的最小值点,但遗漏了最小值点(500,0).此题解法的错误是没有考虑直线可行域的边界点.
二、理论分析
通过例1与例2的求解不难发现,这属于条件极值的漏解问题.漏解问题是复杂的,它不仅与求解方法的不严谨性有关,与约束条件的复杂性也有着密切的关联.由于理论依据与适用范围的限制,导致代入法与拉格朗日乘数法只适用部分条件极值问题的求解.因而当约束条件达不到求解方法的要求时,条件极值就会出现漏解现象.
1.约束条件确定了目标函数的可行域
条件极值就是目标函数f(x,y)在约束条件φ(x,y)确立的可行域上的极值.若可行域是有界闭区域,且目标函数f(x,y)在可行域上连续,那么目标函数f(x,y)在可行域上必定取得最大值和最小值.其中最值点既可能在可行域的内部,也可能在可行域的边界上.在可行域内部,f(x,y)的所有驻点与偏导数不存在的点均可能成为目标函数的最值点.而例1和例2的错误就是考虑问题片面造成的.
2.约束条件决定条件极值的解法
求解条件极值的常用方法有两种,即拉格朗日乘数法和代入法.现有的大部分高等数学教材都把这两种方法列为重点,以例题的方式详细介绍如何利用这两种方法,却对理论依据和适用范围避而不谈.其实,它们的理论依据和适用范围都与约束条件φ(x,y)有着密切的关系.
(1)利用代入法求解条件极值
代入法是从约束条件的m个方程中将其中m个变量解出,用其余(n-m)个变量表示,然后直接代入目标函数中,这样就变为一个求(n-m)个变量函数的无条件极值问题,因而约束条件显化是使用代入法的前提条件,否则,使用代入法就会出现漏解情况.
例3 求原点到曲线x2-(y-1)3=0的最短距离.
解1 目标函数:z=x2+y2,约束条件:φ(x,y)=x2-(y-1)3=0.
将约束条件变形为x2=(y-1)3,代入目标函数,得z=(y-1)3+y2.对y求导且令其为零,得 z′=3(y-1)2+2y=3y2-4y+3=0.由于判别式Δ<0,此一元二次函数无实数解.
解2 将约束条件变形为y=1+x2[]3,代入目標函数,得z=x2+(1+x2[]3)2.对x求导,得 z′=2x+4[]3(1+x2[]3)x-1[]3,无稳定点,不可导点x=0.根据一元函数取得极值的第一充分条件可知,(0,1)为所求最小值点.
上述两种解法都采用了代入法,通过代入实现消元降维,转化为一元函数的无条件极值问题,但结果却不同,这说明使用代入法求解条件极值是有条件的.从代数的角度可以看出,当约束条件φ(x,y)变形为单值函数时结果正确,而变为多值函数时结果却错误,这说明条件极值的漏解现象与约束条件φ(x,y)是否显化有关.
① 当约束条件φ(x,y)=0可以显化时,代入法可以把条件极值等价转化为一元函数在区间内的极值问题,而一元函数的极值点只有驻点与不可导点两类,故不会产生漏解的情况.
② 若约束条件φ(x,y)=0不能显化时,约束曲线φ(x,y)=0上的点与其在坐标轴上的投影点之间是多对一的映射.如果极值点邻域内的点出现投影折叠时,极值点的投影或与非极值点的投影重合,或为区间端点,它们都不是z=f[x,y(x)]在定义域内的极值点,此时使用代入法会遗漏条件极值点.
例4 求函数f(x,y)=x2+y2在星形线x2[]3+y2[]3=a2[]3上的最值与对应的最值点.
解 目标函数:f(x,y)=x2+y2,约束条件:φ(x,y)=x2[]3+y2[]3-a2[]3=0.
根据对称性,只讨论y>0的情形:
将约束条件变形为y 2=(a2[]3- x2[]3)3,代入目标函数,得F(x)=x2+(a2[]3-x2[]3)3.
对x求导,得 F′(x)=2x-2(a2[]3-x2[]3)2x-1[]3,得驻点x=±2a[]4.F(x)不可导点x=0.
经比较,最大值F(0)=a2,最小值F±2a[]4=a2[]4,因此f(x,y)的最大值与最小值分别为a2,a2[]4.
由于f(x,y)与φ(x,y)具有对称性,因此最小值点为
2a[]4,2a[]4,- 2a[]4,2a[]4,2a[]4,- 2a[]4,- 2a[]4,- 2a[]4;
最大值点为(0,a),(0,-a),(a,0),(-a,0).
注:将约束条件φ(x,y)分为x轴上、下两部分,利用对称性解决问题.
结合本例可以看出,利用代入法求解条件极值问题时,应全面考虑约束条件的具体状况,才能避免出现漏解现象.
(2)利用拉格朗日乘数法求解条件极值
设函数f(x,y),φ(x,y)在点P(x0,y0)的某邻域内有连续的偏导数,φ(x0,y0)=0.若[φx(x0,y0)]2+[φy(x0,y0)]2≠0时,可用拉格朗日乘数法求解.这里要求约束条件φ(x,y)满足隐函数存在定理,而且是不可或缺的.当[φx(x0,y0)]2+[φy(x0,y0)]2=0时,使用拉格朗日乘数法就会出现漏解情况.
例5 利用拉格朗日乘数法求解例3.
解 目标函数:z=x2+y2,约束条件:φ(x,y)=x2-(y-1)3=0.
构造拉格朗日函数F(x,y,SymbollA@)=x2+y2+SymbollA@[x2-(y-1)3].
对各变量求偏导并令其为零,得
Fx(x,y,λ)=2x+2λx=0,Fy(x,y,λ)=2y-3λ(y-1)2=0,Fλ(x,y,λ)=x2-(y-1)3=0,
方程组无解,遗漏条件极值点(0,1).
例5的求解采用拉格朗日乘数法,这是不依赖消元而直接使用的方法.它将问题转化为二元函数的无条件极值,但结果却无解,这说明拉格朗日乘数法求条件极值是有使用条件的.而例5的漏解是因为约束条件φ(x,y)在极值点(0,1)不满足隐函数存在定理的条件造成的,这与拉格朗日乘数法的使用要求相吻合.因而解决由拉格朗日乘数法造成的漏解问题必须围绕约束条件φ(x,y)是否满足隐函数存在定理展开讨论.
① 若约束条件φ(x,y)满足隐函数存在定理,即[φx(x0,y0)]2+[φy(x0,y0)]2≠0时,条件极值可以用拉格朗日乘数法求解,在理论上不会漏解.拉格朗日乘数法将条件极值等价转化为辅助函数F(x,y,SymbollA@)的无条件极值问题.而二元函数的驻点不一定是极值点,因此拉格朗日乘数法求得结果只是可能的极值点,而且必定含有所有极值点.
② 若约束条件φ(x,y)不满足隐函数存在定理时,拉格朗日乘数法就不再适合作为求解条件极值的方法.如果继续使用此方法,可能出现漏解情况,而且遗漏的可能极值点就是φ(x,y) 的驻点或偏导数不全存在的点.
例6 利用拉格朗日乘数法解例4.
解 目标函数:f(x,y)=x2+y2,约束条件:φ(x,y)=x2[]3+y2[]3-a2[]3=0.
构造拉格朗日函数F(x,y,SymbollA@)=x2+y2+SymbollA@(x2[]3+y2[]3-a2[]3).
对各变量求偏导并令其为零,得
Fx(x,y,λ)=2x+23λx- 1[]3=0,Fy(x,y,λ)=2y+23λy- 1[]3=0,Fλ(x,y,λ)=x2[]3+y2[]3-a2[]3=0,
解得拉格朗日函数的驻点:2a[]4,2a[]4,-2a[]4,2a[]4,2a[]4,-2a[]4,-2a[]4,-2a[]4.
遗漏条件极值点:(0,a),(0,-a),(a,0),(-a,0).结果与例4相同.
注:① 约束条件φ(x,y)在遗漏条件极值点(0,a)的偏导数不存在,其余遗漏条件极值点情况类似.
② 拉格朗日函数的驻点与约束条件φ(x,y)偏导数不全存在的点是目标函数f(x,y)的可能条件极值点.
综上所述,条件极值的极值点或是约束条件φ(x,y)的驻点、φ(x,y)偏导数不全存在的点,或是拉格朗日函数的驻点.不过由于约束条件的限制,使用拉格朗日乘数法时,前两种可能极值点经常被遗漏,因此为避免漏解问题,需要补充考察这两类点.
三、解决问题
条件极值处理最优化问题时,应当考虑可行域上的所有可能极值点,才能避免出现漏解现象,因而条件极值处理最优化问题的解题过程如下.
首先,找出约束条件φ(x,y)确定的可行域.
其次,找出可行域内可能的最值点:
① 找到φ(x,y)的所有偏导数不全存在的点:{(xi,yi)|φx(xi,yi),φy(xi,yi)不存在,i=1,2,…,n}.
② 找到φ(x,y)的驻点:{(xi,yi)|[φx(xi,yi)]2+[φy(xi,yi)]2=0,i=1,2,…,n }.
③ 找到φ(x,y)的邊界点:{(xi,yi)|φ(x,y)=0,i=1,2,…,n }.
④ 找到所有拉格朗日驻点:{(xi,yi)| i=1,2,…,n }.
最后,比较上述所有点处的函数值,取满足题目要求的条件极值.
约束条件不仅决定目标函数的可行域,还影响着条件极值的解法.在最优化问题上,需要谨慎处理约束条件,否则会使最优选择出现偏差,因此,正确理解和分析约束条件是至关重要的.
【参考文献】
张丽,张艺玲,朱德刚.条件极值问题中约束条件的一个注记[J].高等数学研究,2018,21(2):30-31.