用MATLAB求解非线性规划课件

上传人:痛*** 文档编号:244114052 上传时间:2024-10-02 格式:PPT 页数:23 大小:238.24KB
收藏 版权申诉 举报 下载
用MATLAB求解非线性规划课件_第1页
第1页 / 共23页
用MATLAB求解非线性规划课件_第2页
第2页 / 共23页
用MATLAB求解非线性规划课件_第3页
第3页 / 共23页
资源描述:

《用MATLAB求解非线性规划课件》由会员分享,可在线阅读,更多相关《用MATLAB求解非线性规划课件(23页珍藏版)》请在装配图网上搜索。

1、Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,11/7/2009,,‹#›,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,用MATLAB软件求解,其,输入格式,如下:,,1. x=quadprog(H,C,A,b);,2. x=quadprog(H,C,A,b,Aeq,beq);,3. x=quadprog(H,C,A,b,Aeq,beq,VLB,VUB);,4. x=

2、quadprog(H,C,A,b, Aeq,beq ,VLB,VUB,X,0,);,5. x=quadprog(H,C,A,b, Aeq,beq ,VLB,VUB,X,0,,options);,6. [x,fval]=quaprog(...);,7. [x,fval,exitflag]=quaprog(...);,8. [x,fval,exitflag,output]=quaprog(...);,1、二次规划,用MATLAB求解非线性规划,,,用MATLAB软件求解,其输入格式如下:1、二次规划用MAT,例1,,min f(x,1,,x,2,)=-2x,1,-6x,2,+x,1,2,-2x,1

3、,x,2,+2x,2,2,s.t. x,1,+x,2,≤2,-x,1,+2x,2,≤2,x,1,≥0, x,2,≥0,1、,写成标准形式,:,2、,输入命令,:,,H=[1 -1; -1 2];,c=[-2 ;-6];A=[1 1; -1 2];b=[2;2];,Aeq=[];beq=[]; VLB=[0;0];VUB=[];,[x,z]=quadprog(H,c,A,b,Aeq,beq,VLB,VUB),3、,运算结果,为:,,x =0.6667 1.3333 z = -8.2222,s.t.,,,例1 min f(x1,x2)=-2x1-6x2+x1,,1.,首先建立M文件

4、,fun.m,,定义目标函数F(X):,function f=fun(X);,f=F(X);,2、一般非线性规划,,其中,X,为,n,维变元向量,,G(X),与,Ceq(X),均为非线性函数组成的向量,其它变量的含义与线性规划、二次规划中相同.用Matlab求解上述问题,基本步骤分三步:,,,1. 首先建立M文件fun.m,定义目标函数F(X):2、,3. 建立主程序.非线性规划求解的函数是fmincon,命令的基本格式如下:,,(1),x=,fmincon,(‘fun’,X,0,,A,b),,(2),x=,fmincon,(‘fun’,X,0,,A,b,Aeq,beq),,(3),x=,fm

5、incon,(‘fun’,X,0,,A,b, Aeq,beq,VLB,VUB),,(4),x=,fmincon,(‘fun’,X,0,,A,b,Aeq,beq,VLB,VUB,’nonlcon’),(5),x=,fmincon,(‘fun’,X,0,,A,b,Aeq,beq,VLB,VUB,’nonlcon’,options),,,,,,,(6),[x,fval]=,fmincon(...),,(7),[x,fval,exitflag]=,fmincon(...),(8)[x,fval,exitflag,output]=,fmincon(...),输出极值点,M,文件,迭代的初值,参数说明,变

6、量上下限,,,3. 建立主程序.非线性规划求解的函数是fmincon,命令,注意:,,[1] fmincon函数提供了大型优化算法和中型优化算法。默认时,若在fun函数中提供了梯度(options参数的GradObj设置为’on’),并且只有上下界存在或只有等式约束,fmincon函数将选择大型算法。当既有等式约束又有梯度约束时,使用中型算法。,,[2] fmincon函数的中型算法使用的是序列二次规划法。在每一步迭代中求解二次规划子问题,并用BFGS法更新拉格朗日Hessian矩阵。,,[3] fmincon函数可能会给出局部最优解,这与初值,X,0,的选取有关。,,,注意:,,,1、,写成

7、标准形式,:,,,,,,,s.t.,,,,,2x,1,+3x,2,6,s.t x,1,+4x,2,5,x,1,,x,2,0,例2,,,1、写成标准形式: 2x1+3x2,,2、,先建立M-文件 fun3.m:,,function f=fun3(x);,f=-x(1)-2*x(2)+(1/2)*x(1)^2+(1/2)*x(2)^2,3、再建立主程序youh2.m:,x0=[1;1];,A=[2 3 ;1 4]; b=[6;5];,Aeq=[];beq=[];,VLB=[0;0]; VUB=[];,[x,fval]=fmincon('fun3',x0,A,b,Aeq,beq

8、,VLB,VUB),4、,运算结果为:,x = 0.7647 1.0588,fval = -2.0294,,,2、先建立M-文件 fun3.m:3、再建立主程序youh2,,1.,先建立M文件 fun4.m,,定义目标函数:,,function f=fun4(x);,f=exp(x(1)),*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);,x,1,+x,2,=0,s.t. 1.5+x,1,x,2,- x,1,- x,2,0,-x,1,x,2,–10,,0,,例3,2.再建立M文件mycon.m定义非线性约束:,function [g,

9、ceq]=mycon(x),g=[x(1)+x(2);1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10];,,,1.先建立M文件 fun4.m,定义目标函数:,,3.主程序youh3.m为:,x0=[-1;1];,A=[];b=[];,Aeq=[1 1];beq=[0];,vlb=[];vub=[];,[x,fval]=fmincon('fun4',x0,A,b,Aeq,beq,vlb,vub,'mycon'),3.,运算结果为,:,,,x = -1.2250 1.2250,fval = 1.8951,,,,3.主程序youh3.m为:3. 运算结果为:,例4,

10、,,,,,,1.先建立M-文件fun.m定义目标函数:,function f=fun(x);,f=-2*x(1)-x(2);,,2.再建立M文件mycon2.m定义非线性约束:,function [g,ceq]=mycon2(x),g=[x(1)^2+x(2)^2-25;x(1)^2-x(2)^2-7];,,,例4 1.先建立M-文件,3. 主程序fxx.m为:,x0=[3;2.5];,VLB=[0 0];VUB=[5 10];,[x,fval,exitflag,output],=fmincon('fun',x0,[],[],[],[],VLB,VUB,'myco

11、n2'),,,,3. 主程序fxx.m为:,4. 运算结果为:,x =,4.0000,3.0000,fval =-11.0000,exitflag = 1,output =,iterations: 4,funcCount: 17,stepsize: 1,algorithm: [1x44 char],firstorderopt: [],cgiterations: [],,,,4. 运算结果为:,应用实例: 供应与选址,,某公司有6个建筑工地要开工,每个工地的位置(用平面坐标系a,b表示,距离单位:千米 )及水泥日用量d(吨)由下表给出。目前有两个临时料场位于A(5,1),B(2,7),日储量各

12、有20吨。假设从料场到工地之间均有直线道路相连。,(1)试制定每天的供应计划,即从A,B两料场分别向各工地运送多少吨水泥,使总的吨千米数最小。,(2)为了进一步减少吨千米数,打算舍弃两个临时料场,改建两个新的,日储量各为20吨,问应建在何处,节省的吨千米数有多大?,,,应用实例: 供应与选址 某公司有6个建筑工地要开,(一)、建立模型,,记工地的位置为(ai,bi),水泥日用量为di,i=1,…,6;料场位置为(xj,yj),日储量为ej,j=1,2;从料场j向工地i的运送量为Xij。,当用临时料场时决策变量为:X,ij,,,当不用临时料场时决策变量为:X,ij,,x,j,,y,j

13、,。,,,(一)、建立模型 记工地的位置为(ai,bi),水泥日用,(二)使用临时料场的情形,,使用两个临时料场A(5,1),B(2,7).求从料场j向工地i的运送量为X,ij,,在各工地用量必须满足和各料场运送量不超过日储量的条件下,使总的吨千米数最小,这是线性规划问题. 线性规划模型为:,设X,11,=X,1,, X,21,= X,2,,, X,31,= X,3,, X,41,= X,4,, X,51,= X,5,,, X,61,= X,6,X,12,= X,7,, X,22,= X,8,,, X,32,= X,9,, X,42,= X,10,, X,52,= X,11,,, X,62

14、,= X,12,,编写程序gying1.m:,,,(二)使用临时料场的情形 使用两个临时料场A(5,,clear,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:6,for j=1:2,aa(i,j)=sqrt((x(j)-a(i))^2+(y(j)-b(i))^2);,end,end,CC=[aa(:,1); aa(:,2)]';,A=[1 1 1 1 1 1 0 0 0 0 0 0,0 0 0

15、 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 1];,[xx,fval]=l

16、inprog(CC,A,B,Aeq,beq,VLB,VUB,x0),,,clearB=[20;20];,计算结果为:,x =[ 3.0000 5.0000 0.0000 7.0000 0.0000 1.0000 0.0000,0.0000 4.0000 0.0000 6.0000 10.0000]’,fval = 136.2275,,,,计算结果为:x =[ 3.0000 5.0000 0.0,(三)改建两个新料场的情形,,改建两个新料场,要同时确定料场的位置(xj,yj)和运送量Xij,在同样条件下使总吨千米数最小。这是非线性规划问题。非线性规划模型为:,,,(三)改

17、建两个新料场的情形 改建两个新料场,要同时确定料,function f=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 i=1:6,s(i)=sqrt((x(13)-a(i))^2+(x(14)-b(i))^2);,f1=s(i)*x(i)+f1;,end,f2=0;,for i=7:12,s(i)=sqrt((x(15)-a(i-6))^2+(x(16)-b(i-6))^2);,f2=s(i)*x(i)+f2;,

18、end,f=f1+f2;,设 X,11,=X,1,, X,21,= X,2,,, X,31,= X,3,, X,41,= X,4,, X,51,= X,5,,, X,61,= X,6,X,12,= X,7,, X,22,= X,8,,, X,32,= X,9,, X,42,= X,10,, X,52,= X,11,,, X,62,= X,12,,x,1,=X,13,, y,1,=X,14,, x,2,=X,15,, y,2,=X,16,,(1)先编写M文件liaoch.m定义目标函数:,,,function f=liaoch(x)f1=s(i)*x(,(2) 取初值为线性规划的计算结果及临时

19、料场的坐标:,x0=[3 5 0 7 0 1 0 0 4 0 6 10 5 1 2 7]';,编写主程序gying2.m.,clear,% x0=[2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2]';,x0=[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

20、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 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];,beq=[3 5 4 7 6 11]';,vlb=[zeros(12,1);-inf;-inf;-inf;-inf];,vub=[];,[x,fval,exitflag]=fmincon('liaoch',x0,A,B,Aeq,beq,vlb,vub),,,(2) 取初值为线性规划的计算结果及临时料场的坐标

21、:clea,(3) 计算结果为:,x=[ 3.0000 5.0000 0.0707 7.0000 0 0.9293 0 0 3.9293 0 6.0000,10.0707 6.3875 4.3943 5.7511 7.1867]’,fval = 105.4626,exitflag = 1,,,(3) 计算结果为:x=[ 3.0000 5.0000,(4) 若修改主程序gying2.m, 取初值为上面的计算结果:,x,0,=[ 3.0000 5.0000 0.0707 7.0000 0 0.9293 0 0 3.9293 0 6.0000 10

22、.0707 6.3875 4.3943 5.7511 7.1867]’,得结果为:,x=[3.0000 5.0000 0.3094 7.0000 0.0108 0.6798 0 0 3.6906 0 5.9892 10.3202 5.5369 4.9194 5.8291 7.2852]’,fval =103.4760,exitflag = 1,总的吨千米数比上面结果略优.,,,(4) 若修改主程序gying2.m, 取初值为上面的计算,(5) 若取初值为:,x0=[3 5 4 7 1 0 0 0 0 0 5 11 5.6348 4.8687 7.2479 7.7499]',,则计算结果为:,x=[3.0000 5.0000 4.0000 7.0000 1.0000 0 0 0 0 0 5.0000 11.0000 5.6959 4.9285 7.2500 7.7500]’,fval =89.8835,exitflag = 1,总的吨千米数89.8835比上面结果更好.,通过此例可看出fmincon函数在选取初值上的重要性.,,,,(5) 若取初值为: 通过此例可看出fmincon函数在选取,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!