張立國


【摘要】本文結合兩個經濟學實例說明約束條件對最優化問題的影響,分析約束條件使目標函數的最優選擇出現偏差的原因,并給出具體的解決方法.
【關鍵詞】約束條件;可行域;目標函數
在經濟學中,最常見的選擇標準是最大化目標(如廠商利潤最大化、消費者效用最大化等)或最小化目標(如在給定產出下使成本最小化等),這些追求目標函數的最大化問題和最小化問題統稱最優化問題.當目標函數受到條件約束時,最優化問題就成了條件極值問題.
由于約束條件的影響,容易造成目標函數的最優選擇出現偏差,因而需要深入研究和解析產生偏差的原因.有些學者也做過這方面的討論,但不夠徹底.本文以兩類常見經濟學案例為引例,說明約束條件對最優化問題的影響,分析約束條件使目標函數的最優選擇出現偏差的原因,并給出具體的解決方法.
一、引例與解法錯誤
例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.