52非線性規劃問題

2021-03-04 08:10:36 字數 4737 閱讀 5187

實驗5.2 非線性規劃問題

5.2.1實驗目的

(1.)學習非線性規劃的基本理論與建模方法。

(2.)學習matlab軟體中非線性規劃問題的求解方法。

5.2.2實驗背景知識介紹

1.非線性規劃問題的數學模型

在數學規劃問題中,若目標函式或約束條件中至少有乙個是非線性函式,這類問題稱之為非線性規劃問題,簡記為np。同線性規劃問題的數學模型一樣,非線性規劃問題的數學模型可以具有不同的形式,但不同形式之間往往可以轉換,因此非線性規劃問題一般形式可以表示成

(5.2.1)

其中:稱為模型(np)的決策變數,稱為目標函式:和稱為約束函式;稱為等式約束;稱為不等式約束。

把乙個實際問題歸結成非線性規劃問題時,一般要注意如下4點。

(1.)確定供選方案。首先要收集同問題有關的資料和資料,在全面熟悉問題的基礎上,確認什麼是問題的可供選擇的方案,並用一組變數來表示它們。

(2.)提出追求的目標。經過資料分析,根據實際需要和可能,提出要追求極小化或極大化的目標。並且,運用各種科學和技術原理,把它表示成數學關係式。

(3.)給出價值標準。在提出要追求的目標之後,要確立所考慮目標的「好」或「壞」的價值標準,並用某種數量形式來描述它。

(4.)尋求限制條件。由於所追求的目標一般都要在一定的條件下取得極小化或極大化效果,因此還要尋找出問題的所有限制條件,這些條件通常用變數之間的一些不等式或等式來表示。

2.非線性規劃的matlab解法

在含matlab的優化工具箱中,非線性規劃問題表示成

(5.2.2)

求解式(5.2.2)的matlab命令函式是fmincon(),根據規劃問題的條件不同,其主要運用格式有以下幾種形式。

①x=fmincon(fun,x0,a,b).

②x=fmincon(fun,x0,a,b,aeq,beq).

③x=fmincon(fun,x0,a,b,aeq,beq,lb,ub).

④x=fmincon(fun,x0,a,b,aeq,beq,lb,ub,nonlcon).

⑤x=fmincon(fun,x0,a,b,aeq,beq,lb,ub,nonlcon,options).

⑥[x,fval]=fmincon(...).

⑦[x,fval,exitflag]=fmincon(...).

⑧[x,fval,exitflag,output]=fmincon(...).

⑨[x,fval,exitflag,output,lambda]=fmincon(...).

⑩[x,fval,exitflag,output,lambda,grad]=fmincon(...).

引數說明:fun為目標函式,x0為初始值,a,b滿足線性不等式約束ax≤b,若沒有不等式約束,則取a=[ ],b=[ ];aeq、beq滿足等式約束aeqx=beq,若沒有,則取aeq=[ ],beq=[ ];lb、ub滿足lb≤x≤ub,若沒有界,可設lb=[ ],ub=[ ];lambda是lagrange乘子,它體現哪乙個約束有效;output輸出優化資訊;gard表示目標函式x處的梯度。

其中引數nonlcon的作用是通過接受的向量x來計算非線性不等約束c(x)≤0和等式約束ceq(x)=0分別在x處的估計c和ceq,通過指定函式柄來使用,如:

>>x=fmincon(@myfun,x0,ab,aeq,beq,lb,ub,@mycon).

先建立非線性約束函式,並儲存為mycon.m:function[c,ceq]=mycon(x)

c計算x處的非線性不等約束c(x)≤0的函式值

ceq計算x處的非線性等式約束ceq(x)=0的函式值

3.二次規劃問題

二次規劃是特殊的一類非線性規劃,其目標函式是二次函式,約束條件仍是線性的,其數學模型的一般形式為

5.2.3)

其中h為對稱矩陣,約束條件與線性規劃相同.在matlab的優化工具箱中有乙個求解二次規劃問題的命令quadprog(),其主要格式為

[x,fval,exitflag,output,lambda]=quadprog(h,c,a,b,aeq,beq,lb,ub,x0,options)

其中引數的主要用法及說明同線性規劃,這裡不再贅述。

5.2.3實驗內容

1.非線性規劃問題

例5.2.1求解非線性規劃問題

解建立目標函式的m檔案

function y=nline(x)

y=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);

建立非線性約束條件的m檔案

function [c1,c2]=nyushu(x)

c1=[1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10];

c2=0;

在命令視窗中輸入

x0=[-1,1];a=[1,-1];b=1;aeq=[1,1];beq=0;

[x,f]=fmincon(『nline』,x0,a,b,aeq,beqnyueshu』)

執行後得

>>x= -1.2247 1.2247

>>f= 1.8951

計算結果表明:當,時,目標函式的極小值為1.8951.

例5.2.2 求解如下二次規劃問題

解將目標函式化為標準形式

在命令視窗中輸入

h=[2,0;0,2];c=[-8,-10];a=[3,2];b=6;lb=[0,0];x0=[1,1];

計算結果表明:當時,目標函式的極小值為-21.3077.

[x,f]=quadprog(h,c,a,b,,,lb,,x0)

執行後得

>>x=

0.3077

2.5385

>>f=

-21.307

計算結果表明:當=0.3077, =2.5385時,目標函式的最大值為-21.3077.

2.非線性規劃問題的例項

例5.2.3 (資金最優使用方案)設有400萬元資金,要求在4年內使用完,若在一年內使用資金x萬元,則可獲得效益萬元(設效益不再投資),當年不用的資金可存入銀行,年利率為10%,試制定出這筆資金的使用方案,以使4年的經濟效益總和為最大。

分析針對現有資金400萬元,對於不同的使用方案,4年內所獲得的效益的總和是不相同的。比如第一年就把400萬元全部用完,這獲得的效益總和為=20.0萬元;若前三年均不用這筆資金,而把它存入銀行,則第四年時的本息和為400×=532.

4萬元,再把它全部用完,則效益總和為23.07萬元,比第一種方案效益多3萬多元,所以用最優化方法可以制定出一種最優的使用方案,以使4年的經濟效益總和為最大。

建立模型:設表示第i年所使用資金數,t表示4年的效益總和,則目標函式為:

決策變數的約束條件:每一年所使用資金既不能為負數,也不能超過當年所擁有的資金數,即第一年使用的資金數,滿足

0≤≤400

第二年資金數,滿足

0≤≤(400-)×1.1

(第一年未使用資金存入銀行一年後的本利之和);

第三年資金數,滿足

0≤≤[(400-)×1.1-]×1.1

第四年資金數,滿足

0≤≤×1.1

這樣,資金使用問題的數學模型為

模型的求解:這是非線性規劃模型的求解問題,可選用函式

[x.fval]=fmincon(fun,x0,a,b,aeq,beq,lb,ub)

對問題進行求解。首先,用極小化的形式將目標函式改寫為

其次,將約束條件表示為如下形式

其中各輸入引數為

,, 解首先編寫目標函式的m檔案,並將其儲存為totle.m

function y=totle(x)

y=-sqrt(x(1))-sqrt(x(2))-sqrt(x(3))-sqrt(x(4));

其次編寫主程式並儲存為檔案exam523.m

clear all

a=[1.1,1,0;1.21,1.1,1,0;1.331,1.21,1.1,1];

b=[440,484,532.4];

lb=[0,0,0,0];

ub=[400,1000,1000,1000];

x0=[100,100,100,100];

[x,fval]=fmincon(『totle』,x0,a,b,,,lb,ub)

結果輸出:執行exam523.m,可獲得如下的執行結果

x=(84.2440 107.6353 128.9031 148.2391)

fval= -43.0821

也即如表5.5所列

表5.8 資金最優使用方案

4年效益總和最大值為t=43.08萬元,這是第一年用完全部資金效益20.0萬元的2倍多,這也反映出進行定量的優化計算的作用。

所以,一些業內人士稱最優化方法為「無需增加投入就能增加產品的手段。」

例 5.2.4 某公司欲以每件2元的**購進一批商品。一般來說隨著商品售價的提高預期銷售量將減少,並對此進行了估算,結果如表

一、二欄。為了盡快收回資金並獲得較多的贏利,公司打算做廣告,投入一定的廣告費後,銷售量將有乙個增長,可由銷售增長因子來表示。據統計,廣告費與銷售增長因子關係如表

三、四欄所示。問公司採取怎樣的營銷決策能使預期的利潤最大?

表5.9 售價與預期銷售量、廣告費與銷售增長因子

解:設x表示售價(單位:元),y表示預期銷售量(單位:

萬元),z表示廣告費(單位:萬元)k表示銷售增長因子。投入廣告費後,實際銷量記為s(萬元),獲得的利潤記為p(單位:

萬元)。由表易知預期銷售量y隨著售價x的增加而單調下降,而銷售增長因子k在開始時隨著廣告費z的增加而增加,在廣告費z等於5萬元時達到最大值,然後在廣告費增加時反而有所回落,為此先畫出散點圖。

非線性規劃

習題六6.1 試計算函式f x x12 x1x2 x22 的梯度和hesse矩陣。6.2 試證明下述函式f x 2x1x2x3 4x1x3 2x2x3 x12 x22 x32 2x1 4x2 4x3具有駐點 0,3,1 0,1,1 1,2,0 2,1,1 2,3,1 再應用充分性條件找出其極點。6....

求解非線性規劃

非線性規劃的例項與定義 如果目標函式或約束條件中包含非線性函式,就稱這種規劃問題為非線性規劃問題。一般說來,解非線性規劃要比解線性規劃問題困難得多。而且,也不象線性規劃有單純形法這一通用方法,非線性規劃目前還沒有適於各種問題的一般演算法,各個方法都有自己特定的適用範圍。1.2 線性規劃與非線性規劃的...

7非線性規劃模型

2.7 非線性規劃模型 在現實問題中,大量的問題是非線性的。因此,除線性規劃外,應用更多的是非線性規劃。本節簡單介紹非線性規劃的有關概念。一.引例 例1 如圖2 68,預建一豬舍,圍牆與隔牆的總長不能超過40公尺,問長 寬各多少時,面積最大?設長 寬分別是公尺 公尺時,問題即為下述優化問題 求 易知...