资源描述:
《无约束优化_1ppt培训课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、无约束最优化数学建模与数学实验实验目的实验内容2、掌握用数学软件包求解无约束最优化问题。1、了解无约束最优化基本算法。1、无约束优化基本思想及基本算法。4、实验作业。3、用MATLAB求解无约束优化问题。2、MATLAB优化工具箱简介无约束最优化问题求解无约束最优化问题的的基本思想*无约束最优化问题的基本算法返回标准形式:求解无约束最优化问题的基本思想求解的基本思想(以二元函数为例)531连续可微多局部极小唯一极小(全局极小)搜索过程最优点(11)初始点(-11)-114.00-0.790.583.39-0.530.
2、232.60-0.180.001.500.09-0.030.980.370.110.470.590.330.200.800.630.050.950.900.0030.990.991E-40.9990.9981E-50.99970.99981E-8返回[X,Y]=meshgrid(-2:0.1:2);Z=100*(Y-X.^2).^2+(1-X).^2;surf(X,Y,Z)无约束优化问题的基本算法1.最速下降法(共轭梯度法)2.牛顿法算法3.拟牛顿法BFGS(Boryden-Fletcher-Goldfarb-Sha
3、nno)公式DFP(Davidon-Fletcher-Powell)公式用Matlab解无约束优化问题其中(3)、(4)、(5)的等式右边可选用(1)或(2)的等式右边。函数fminbnd的算法基于黄金分割法和二次插值法,它要求目标函数必须是连续函数,并可能只给出局部最优解。常用格式如下:(1)x=fminbnd(fun,x1,x2)(2)x=fminbnd(fun,x1,x2,options)(3)[x,fval]=fminbnd(...)(4)[x,fval,exitflag]=fminbnd(...)(5)[x
4、,fval,exitflag,output]=fminbnd(...)优化函数的输出变量下表:程序为:f='2*exp(-x).*sin(x)';fplot(f,[0,8]);%作图语句[xmin,ymin]=fminbnd(f,0,8)f1='-2*exp(-x).*sin(x)';[xmax,ymax]=fminbnd(f1,0,8)例2对边长为3米的正方形铁板,在四个角剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大?解M文件如下:functionf=fun0(x)f=-(3-2*x)^2*x;主
5、程序为:[x,fval]=fminbnd('fun0',0,1.5);xmax=xfmax=-fval运算结果为:xmax=0.5000,fmax=2.0000.即剪掉的正方形的边长为0.5米时水槽的容积最大,最大容积为2立方米.命令格式为:(1)x=fminunc(fun,X0);或x=fminsearch(fun,X0)(2)x=fminunc(fun,X0,options);或x=fminsearch(fun,X0,options)(3)[x,fval]=fminunc(...);或[x,fval]=fmins
6、earch(...)(4)[x,fval,exitflag]=fminunc(...);或[x,fval,exitflag]=fminsearch(5)[x,fval,exitflag,output]=fminunc(...);或[x,fval,exitflag,output]=fminsearch(...)2、多元函数无约束优化问题标准型为:minF(X)例minf(x)=(4x12+2x22+4x1x2+2x2+1)*exp(x1)1、M-文件:functionf=fun1(x)f=exp(x(1))*(4*x(
7、1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);2、主程序:x0=[-1,1];x=fminunc('fun1',x0);y=fun1(x)3、运行结果:x=0.5000-1.0000y=1.3029e-10[3]fminunc为中型优化算法的步长一维搜索提供了两种算法,由options中参数LineSearchType控制:LineSearchType=’quadcubic’(缺省值),混合的二次和三次多项式插值;LineSearchType=’cubicpoly’,三次多项式插值.使用fm
8、inunc和fminsearch可能会得到局部最优解.fminsearch是用单纯形法寻优.fminunc的算法见以下几点说明:[1]fminunc为无约束优化提供了大型优化和中型优化算法。由options中的参数LargeScale控制:LargeScale=’on’(默认值),使用大型算法LargeScale=’off’(默认值),使用中型