2014最容易学习的 MATLAB

上传人:qiuji****ngye 文档编号:56906665 上传时间:2018-10-17 格式:PPT 页数:29 大小:205.50KB
返回 下载 相关 举报
2014最容易学习的 MATLAB_第1页
第1页 / 共29页
2014最容易学习的 MATLAB_第2页
第2页 / 共29页
2014最容易学习的 MATLAB_第3页
第3页 / 共29页
2014最容易学习的 MATLAB_第4页
第4页 / 共29页
2014最容易学习的 MATLAB_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《2014最容易学习的 MATLAB》由会员分享,可在线阅读,更多相关《2014最容易学习的 MATLAB(29页珍藏版)》请在金锄头文库上搜索。

1、MATLAB优化工具箱及其应用简介,1 MATLAB优化工具箱简介,MATLAB诞生于20世纪70年代,意为Matrix与Laboratory的组合,内容非常丰富,功能强大。擅长数值计算,能处理大量数据,效率非常高,是深受人们欢迎的科学计算工具。,特点简单、直接: 语言简单,代码灵活,库函数资源丰富; 运算灵活,使用方便,编程效率高; 扩充能力强,交互性好; 程序可移植性和开放性好; 强大的图形图像处理功能。,MATLAB有30多个工具箱,其中Optimization Toolbox应用最为广泛。该工具箱常用函数及功能如下表:,2 线性规划的MATLAB实现,linprog函数的调用格式: x

2、, z =linprog(c, A, b) 返回最优解x及最优值 z,解:MATLAB求解程序清单: c=2 3 1; A=1 4 2;3 2 0; b=8 6; x, z=linprog (c, A, b),Optimization terminated. x = 1.9099 0.1351 2.7748 z= 7.0000,2、 对于线性规划问题:,min z=cTx s.t. A*x b D*x=e,其中,c、x、b和e为向量,A和D为矩阵,linprog函数的调用格式: x, z =linprog(c, A, b, D, e) 返回最优解x及最优值 z 如果不等式约束条件A*x b 不

3、存在,则令A 、b ,例2: min z=3x1+3x2+x3 s.t. x14x22x38 3x12x26 3x13x22x310,解:MATLAB求解程序清单: c =3, 3, 1; A=1, 4, 2; 3, 2, 0; b=8, 6; D=3, 3, 2; e=10; x, z=linprog (c, A, b, D, e),Optimization terminated. x = 1.4286 0.8571 1.5714 z = 8.4286,3、对于线性规划问题:,min z=cTx s.t. A*x b D*x=e lx u,其中,c、x、b、e、l和u为向量,A和D为矩阵,l

4、inprog函数的调用格式: x, z =linprog(c, A, b, D, e, l, u) 返回最优解x及最优值 z ; 如果不等式约束条件A*x b 不存在,则令A 、b ; 如果等式约束条件D*x e 不存在,则令D 、e ,例3: min z=5x12x2+x3+x4 s.t. x12x2+3x3+4x4=7 2x1+2x2+x3+2x4=3 x1, , x40,解:MATLAB求解程序清单: c=5 2 1 1; D=1 2 3 4; 2 2 1 2; e=7, 3; l=zeros(4, 1); x, z=linprog ( c, , , D, e, l ),Optimiza

5、tion terminated. x = 0.0000 0.5000 2.0000 0.0000 z = 1.0000,min z=cTx s.t. A*x b D*x=e lx u,x, z =linprog(c, A, b, D, e, l, u),例4:第二章7(3): max z=10x1+15x2+12x3 s.t. 5x13x2+x39 5x1+6x2+15x315 2x1+x2+x315 x1, x2, x30,解:MATLAB求解程序清单: c=10 15 12; A=5 3 1;5 6 15;2 1 1; b=9 15 15; l=zeros(3, 1); x, z=linp

6、rog(c, A, b, , , l),Exiting: One or more of the residuals, duality gap, or total relative error has stalled: the primal appears to be infeasible (and the dual unbounded). (The dual residual TolFun=1.00e-008.) x = 1.5000 0.0000 1.5000 z = -33.0000,7(3)大M法:,人工变量不为零,原问题无解,第二章习题答案,3 无约束非线性规划的MATLAB实现,1、

7、fminbnd函数 可求解区间a, b内单变量函数的最小值。 调用格式如下: x, f =fminbnd (fun, a, b) fun为目标函数,返回区间内最优解x及最小值 f,例5: 求 min f= ex+x2 , 搜索区间为10, 10。,解:MATLAB求解程序清单: a=10; b=10; x, f =fminbnd(exp(-x)+x2, a, b),输出结果: x = 0.3517 f = 0.8272,2、fminunc函数 可求解单变量及多变量函数的最小值。 调用格式如下: x, f =fminunc (fun, x0) fun为目标函数,给定初值x0 ,返回最优解x及最小

8、值 f,例6: 求 min f= ex+x2 , x010。,解:MATLAB求解程序清单: x0=10; x, f =fminunc(exp(-x)+x2, x0),输出结果: x = 0.3517 f = 0.8272,例7: 求 min f= ex1+(4x12 + 2x22 +4x1x2 + 2x2 +1),解:MATLAB求解程序清单: x0=1, 1; x,f=fminunc(exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1), x0),输出结果: x = 0.5000 -1.0000 f = 1.1811e-013,3、fminsear

9、ch函数 可求解单变量及多变量函数的最小值。 调用格式如下: x, f =fminsearch (fun, x0) fun为目标函数,给定初值x0 ,返回最优解x及最小值 f,例8: 解非线性方程组:,解:化为最小二乘问题: min f(x) = f12+ f22+ f32+ f42 MATLAB求解程序清单:,(1) 利用M-file editor定义函数: function f=fun(x) f1=x(1)2+2*x(2)2x(3)2+x(4)12; f2=3*x(1)2+x(2)2+3*x(3)2+5*x(4)8; f3=2*x(1)2+x(2)23*x(3)+5*x(4)210; f4

10、=4*x(1)+3*x(2)22*x(3)+2*x(4)215; f=f12+f22+f32+f42; 以文件名myfun_8.m保存在MATLAB目录下的work文件夹中。,(2) 在MATLAB 命令窗口中调用fminsearch函数: x0=1, 1, 1, 1; x, f=fminsearch(myfun_8, x0),输出结果: x = 0.6905 2.3203 0.1825 0.7894 f = 4.1429e-009,(f1=1.8221e005; f2=3.6129e005; f3 =4.9990e005; f4 =2.5656e006),4 约束非线性规划的MATLAB实现

11、 调用MATALAB的fmincon函数进行求解。,fmincon函数的调用格式: x, f =fmincon (fun, x0, A, b) 给定初值x0,返回最优解x及最优值 f,解:MATLAB求解程序清单: A=1 0; 0 1; b=1, 0; x0=0, 0; x, f=fmincon(x(1)+1)3)/12+x(2), x0, A, b),输出结果: x = 1 0 f = 0.6667,2、对于仅有线性约束条件的非线性规划问题:,min f (x) s.t. A*x b D*x=e,其中,x、b和e为向量,A和D为矩阵,fmincon函数的调用格式: x, f =fminco

12、n (fun, x0, A, b, D, e ) 给定初值x0,返回最优解x及最优值 f 。 如果不等式约束条件A*x b 不存在,则令A 、b ,3、对于仅有线性约束且给定了变量上下限的非线性规划问题:,min f (x) s.t. A*x b D*x=e lx u,其中,x、b、e、l 和 u 为向量,A和D为矩阵,fmincon函数的调用格式: x, f =fmincon (fun, x0, A, b, D, e, l, u ) 给定初值x0,返回最优解x及最优值 f 。 如果不等式约束条件A*x b 不存在,则令A 、b ; 如果等式约束条件D*x e 不存在,则令D 、e ,例10:

13、求平面x+y4z=1到平面x+y4z=8的最短距离。,MATLAB求解程序清单: D=1, 1, 4, 0, 0, 0; 0, 0, 0, 1, 1, 4; e=1, 8; x0=zeros(6,1); x, f=fmincon(sqrt(x(1)x(4)2+(x(2)x(5)2 +(x(3)x(6)2), x0, , , D, e),输出结果: f = 1.6499 ( x = 1.0556 1.0556 0.7778 0.6667 0.6667 2.3333),4、对于一般非线性规划问题:,min f (x) s.t. A*x b D*x=e lx u g(x) 0 h(x)=0,其中,x

14、、b、e、l 和 u 为向量; A和D为矩阵; g(x) 和 h(x)为非线性函数(向量),fmincon函数的调用格式: x, f =fmincon ( fun, x0, A, b, D, e, l, u, nonlcon ) 给定初值x0,返回最优解x及最优值 f 。 如果不等式约束条件A*x b 不存在,则令A 、b ; 如果等式约束条件D*x e 不存在,则令D 、e ; 如果变量上下限不存在,则令l 、u ; 非线性不等式约束 g(x) 0 和等式约束 h(x)=0 在 nonlcon 参数中给定,如果不同时存在,可令 g= 或 h= ,例11: min f=ex1(4x12+2x2

15、2+4x1x2+2x2+1) s.t. x1x2 x1 x2 + 1.5 0 x1x2 100,min f (x) s.t. A*x b D*x=e lx u g(x) 0 h(x)=0,x, f =fmincon ( fun, x0, A, b, D, e, l, u, nonlcon ),分析:,例11: min f=ex1(4x12+2x22+4x1x2+2x2+1) s.t. x1x2 x1 x2 + 1.5 0 x1x2 100,解:(1) 利用M-file editor定义目标函数: function f=myfun(x) f=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1); 以文件名myfun_11.m保存在MATLAB目录下的work文件夹中。,(2) 利用M-file editor定义非线性约束条件: functiong,h=mycon(x) g(1)=x(1)*x(2)x(1)x(2)+1.5; g(2)= x(1)*x(2)10; h=; 以文件名mycon_11.m保存在MATLAB目录下的work文件夹中。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号