第5讲-非线性规划PPT课件.ppt
《第5讲-非线性规划PPT课件.ppt》由会员分享,可在线阅读,更多相关《第5讲-非线性规划PPT课件.ppt(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 数学建模与数学实验数学建模与数学实验第第5讲讲 非线性规划非线性规划 实验目的实验目的实验内容实验内容2、掌握用数学软件求解优化问题。、掌握用数学软件求解优化问题。1、直观了解非线性规划的基本内容。、直观了解非线性规划的基本内容。1、用用Matlab求解非线性规划求解非线性规划。4、实验作业。、实验作业。2、非线性规划模型举例。、非线性规划模型举例。3、钢管订购及运输优化模型、钢管订购及运输优化模型 1)首先建立首先建立M文件文件fun.m,定义目标函数定义目标函数F(X):function f=fun(X);f=F(X);其中其中X为为n维变元向量,维变元向量,G(X)与与Ceq(X)均为
2、非线性函数组成的均为非线性函数组成的向量,其它变量的含义与线性向量,其它变量的含义与线性规划、二次规划中相同规划、二次规划中相同.用用Matlab求解上述问题,基本步求解上述问题,基本步骤分三步:骤分三步:一、用一、用MatlabMatlab解非线性规划解非线性规划 3)建立主程序建立主程序.非线性规划求解的函数是非线性规划求解的函数是fmincon,命令的基本格式如下:命令的基本格式如下:(1)x=fmincon(fun,X0,A,b)(2)x=fmincon(fun,X0,A,b,Aeq,beq)(3)x=fmincon(fun,X0,A,b,Aeq,beq,VLB,VUB)(4)x=fm
3、incon(fun,X0,A,b,Aeq,beq,VLB,VUB,nonlcon)(5)x=fmincon(fun,X0,A,b,Aeq,beq,VLB,VUB,nonlcon,options)(6)x,fval=fmincon(.)(7)x,fval,exitflag=fmincon(.)(8)x,fval,exitflag,output=fmincon(.)输出极值点M文件迭代的初值参数说明变量上下限 注意:注意:1 fmincon函数提供了大型优化算法和中型优化算法。默认函数提供了大型优化算法和中型优化算法。默认时,若在时,若在fun函数中提供了梯度(函数中提供了梯度(options参数
4、的参数的GradObj设置设置为为on),并且只有上下界存在或只有等式约束,),并且只有上下界存在或只有等式约束,fmincon函数将选择大型算法。当既有等式约束又有梯度约束时,使函数将选择大型算法。当既有等式约束又有梯度约束时,使用中型算法。用中型算法。2 fmincon函数的中型算法使用的是序列二次规划法。在每函数的中型算法使用的是序列二次规划法。在每一步迭代中求解二次规划子问题,并用一步迭代中求解二次规划子问题,并用BFGS法更新拉格朗日法更新拉格朗日Hessian矩阵。矩阵。3 fmincon函数可能会给出局部最优解,这与初值函数可能会给出局部最优解,这与初值X0的选取的选取有关。有关
5、。1.写成标准形式写成标准形式:s.t.2x1+3x2 6 s.t x1+4x2 5 x1,x2 0例例1 2.先建立先建立M-文件文件 fun1.m:function f=fun1(x);f=-x(1)-2*x(2)+(1/2)*x(1)2+(1/2)*x(2)2MATLAB(youh1)3.再建立主程序再建立主程序youh1.m:x0=1;1;A=2 3;1 4;b=6;5;Aeq=;beq=;VLB=0;0;VUB=;x,fval=fmincon(fun1,x0,A,b,Aeq,beq,VLB,VUB)4.运算结果为:运算结果为:x=0.7647 1.0588 fval=-2.0294
6、1先建立先建立M文件文件 fun2.m,定义目标函数定义目标函数:function f=fun2(x);f=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);x1+x2=0 s.t.1.5+x1x2-x1-x2 0 -x1x2 10 02再建立再建立M文件文件mycon2.m定义非线性约束:定义非线性约束:function g,ceq=mycon2(x)g=x(1)+x(2);1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10;ceq=;例例2 3主程序主程序youh2.m为为:x0=-1;1;A=;b=;Aeq=1 1;b
7、eq=0;vlb=;vub=;x,fval=fmincon(fun2,x0,A,b,Aeq,beq,vlb,vub,mycon2)MATLAB(youh2)4.运算结果为运算结果为:x=-1.2250 1.2250 fval=1.8951 1先建立先建立M-文件文件fun3.m定义目标函数定义目标函数:function f=fun3(x);f=-2*x(1)-x(2);2再建立再建立M文件文件mycon3.m定义非线性约束:定义非线性约束:function g,ceq=mycon3(x)g=x(1)2+x(2)2-25;x(1)2-x(2)2-7;ceq=;例例3 3.主程序主程序youh3.
8、m为为:x0=3;2.5;VLB=0 0;VUB=5 10;x,fval,exitflag,output =fmincon(fun3,x0,VLB,VUB,mycon3)MATLAB(youh3(fun3)4.运算结果为运算结果为:x=4.0000 3.0000fval=-11.0000exitflag=1output=iterations:4 funcCount:17 stepsize:1 algorithm:1x44 char firstorderopt:cgiterations:返回返回 例例4 供应与选址供应与选址 某公司有某公司有6个建筑工地要开工,每个工地的位置(用平面坐标个建筑工
9、地要开工,每个工地的位置(用平面坐标系系a,b表示,距离单位:千米表示,距离单位:千米)及水泥日用量)及水泥日用量d(吨吨)由下表给出。由下表给出。目前有两个临时料场位于目前有两个临时料场位于A(5,1),B(2,7),日储量各有,日储量各有20吨。假吨。假设从料场到工地之间均有直线道路相连。设从料场到工地之间均有直线道路相连。(1)试制定每天的供应计划,即从)试制定每天的供应计划,即从A,B两料场分别向各工地两料场分别向各工地运送多少吨水泥,使总的吨千米数最小。运送多少吨水泥,使总的吨千米数最小。(2)为了进一步减少吨千米数,打算舍弃两个临时料场,改建)为了进一步减少吨千米数,打算舍弃两个临
10、时料场,改建两个新的,日储量各为两个新的,日储量各为20吨,问应建在何处,节省的吨千米数有吨,问应建在何处,节省的吨千米数有多大?多大?二、非线性规划模型举例二、非线性规划模型举例 (a1,b1),d1=3(a2,b2),d2=5(a6,b6),d6=11A(x1,y1)e1=20B(x2,y2)e2=20 x11x12x16x21x26x22目标:使得吨公里目标:使得吨公里min分析分析 模型的假设、符号说明模型的假设、符号说明符号说明符号说明1)第i个建筑工地的位置为(ai,bi),i=1,n;2)第i个建筑工地需要水泥量为dj,i=1,n;3)第 j个料场的位置为(xj,yj),j=1,
11、m;4)第j个料场储备的水泥量为ej吨,j=1,2,m;5)第i个料场向第 j个建筑工地的运送量为xij,i=1,m j=1,n模型的假设模型的假设1 1)本模型只考虑与水泥运输有关的问题,其它 情况不予考虑;2 2)从料场到使用建筑工地之间均有直线道路相连。(a1,b1),d1=3(a2,b2),d2=5(a6,b6),d6=11A(x1,y1)e1=20B(x2,y2)e2=20 x11x12x16x21x26x22目标:使得吨公里目标:使得吨公里min分析分析 建立模型建立模型1.1.目标函数为:目标函数为:2.2.约束条件为约束条件为:需求约束需求约束:日储量约束日储量约束:非负约束非
12、负约束:根据假设2,所有的吨公里为:建立模型建立模型所以问题的模型为:所以问题的模型为:1 1)当用原)当用原料场料场时决策变量为:时决策变量为:xij2 2)当新建)当新建料场料场时决策变量为:时决策变量为:xij,xj,yj模型的特点模型的特点 模型的求解模型的求解 使用两个使用两个原原料场料场A(5,1),B(2,7).求从料场求从料场j 向使用向使用单位单位i 的运送量为的运送量为xij,在各建筑工地使用量必须满足和,在各建筑工地使用量必须满足和各料场运送量不超过日储量的条件下,使总的吨千米各料场运送量不超过日储量的条件下,使总的吨千米数最小,此时由于数最小,此时由于ai,bi、xj,
13、yj都是已知的,故这是都是已知的,故这是一个一个线性规划线性规划问题问题.此时决策变量为此时决策变量为xij,令令1.1.使用原料场使用原料场 求解线性规划,求解线性规划,MATLABMATLAB程序程序a=1.25 8.75 0.5 5.75 3 7.25;b=1.25 0.75 4.75 5 6.5 7.75;d=3 5 4 7 6 11;x=5 2;y=1 7;e=20 20;for i=1:2 for j=1:6 aa(i,j)=sqrt(x(i)-a(j)2+(y(i)-b(j)2);endendCC=aa(1,:)aa(2,:);符号说明符号说明:1.1.编写程序编写程序gying
14、1 A=1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1;B=20;20;Aeq=1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1;beq=d(1);d(2);d(3);d(4);d(5);d(6);VLB=0 0 0 0 0 0 0 0 0 0 0 0;VUB=;x0=1 2 3 0 1 0 0 1 0 1 0
15、1;x,fval=linprog(CC,A,B,Aeq,beq,VLB,VUB,x0)2.2.计算结果计算结果:总的吨千米数:总的吨千米数:136.23j123456x1j(料场A)350701x2j(料场B)0040610MATLAB(gying1)2.改建两个料场改建两个料场决策变量决策变量为:为:xij,xi,yj 改建两个新料场,要同时确定料场的位置改建两个新料场,要同时确定料场的位置(xj,yj)和运送量和运送量xij,在同样条件下使总吨千米数最小。此时在同样条件下使总吨千米数最小。此时由于由于ai,bi 已知已知,但但xj,yj都是未知的,故这是都是未知的,故这是非线性非线性规划规
16、划问题。问题。模型模型为:为:求解非线性规划,求解非线性规划,MATLAB程序程序(liaoch.m)function f,g=liaoch(x)a=1.25 8.75 0.5 5.75 3 7.25;b=1.25 0.75 4.75 5 6.5 7.75;d=3 5 4 7 6 11;e=20 20;f1=0;for j=1:6 s(j)=sqrt(x(13)-a(j)2+(x(14)-b(j)2);f1=f1+s(j)*x(j);%A(x13,x14)到各工地的吨公里数end符号说明符号说明:1)1)编写程序编写程序liaoch.m和和gying2 f2=0;for i=7:12 s(i)
17、=sqrt(x(15)-a(i-6)2+(x(16)-b(i-6)2);f2=f2+s(i)*x(i);%B(x15,x16)到各工地的吨公里数endf=f1+f2;%总的目标函数clearx0=3 5 0 7 0 1 0 0 4 0 6 10 5 1 2 7;A=1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0;B=20;20;Aeq=1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 非线性 规划 PPT 课件
限制150内