资源描述:
《非线性规划软件求解及案例分析ppt培训课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、无约束极值问题的Matlab求解(0.5学时)有约束极值问题的Matlab求解(0.5学时)应用案例分析(1学时)第9讲非线性规划软件求解及应用案例重点:Matlab求解非线性规划,案例分析。难点:应用建模及求解。基本要求:掌握无约束极值和有约束极值的Matlab求解,看懂教材中4.7,5.6的应用案例,结合实际问题用学的非线性规划求解方法建立模型并求解。无约束极值问题的Matlab求解优化工具箱是Matlab的关键部分,它是Matlab强大功能得以实现的载体和手段.也是对Matlab基本功能的重要扩充.其中,优化工具箱涉及函数的最小化或最大化问题,即函数的极值问题.本节主要介绍求无约
2、束非线性极值的主要函数格式。一、用Matlab解一元函数的无约束优化问题设一元函数元约束优化问题为常用格式如下:x=fminband(‘fun’,a,b);x=fminbnd(‘fun’,a,b,options);[x,fval]=fminbnd(…);[x,fval,exitflag]=fminbnd(…);[x,fval,exitflag,output]=fminbnd(…);其中(3)、(4)、(5)的等式右边可选用(1)或(2)的等式右边.函数fminbnd的算法基于0.618法和二次插值法,它要求目标函数必须是连续函数,并可能只给出局部最优解。控制参数option的设置(1)
3、Display:显示水平,取值为“off”时,不显示输出;取值为“iter”时,显示每次迭代的信息;取值为“final”时,显示最终结果。默认值为“final”。(2)MaxFunEvals:允许进行函数评价的最大次数,取值为整数。(3)MaxIter:允许进行迭代的最大次数,取值为正整数。控制参数options可以通过函数optimset创建或修改。命令格式如下:①options=optimset(‘optimfun’),创建一个含所有参数名,并与优化函数optimfun相关的默认值的选项结构options。②options=optimset(‘param1’,value1,‘par
4、am2’,value2,…),创建一个名称为options的优化选项参数,其中指定的参数具有指定值,所有未指定的的参数取默认值。③options=optimset(oldops,‘param1’,value1,‘param2’,value2,…),创建名称为oldops的参数的拷贝,用指定的参数修改oldops中相应的参数。例4-8对边长为3m的正方形铁板,在4个角剪去相等的正方形以制成方形无盖水箱,问如何剪法使水箱的容积最大?Matlab命令窗口输入:二、用MATLAB解无约束优化问题设无约束优化问题(一元或多元函数)标准形为常用格式如下:x=fminunc(‘fun’,x0);或x
5、=fminsearch(‘fun’,x0);x=fminunc(‘fun’,x0,options);或x=fminsearch(‘fun’,x0,options);[x,fval]=fminunc(…);或[x,fval]=fminsearch(…)[x,fval,exitflag]=fminunc(…);或[x,fval,exitflag]=fminsearch(…);[x,fval,exitflag,output]=fminunc(…);或[x,fval,exitflag,output]=fminsearch(…);说明:fminsearch是用单纯形法寻优。而对于fminunc的
6、算法:(1)fminunc为无约束优化提供了大型优化和中型优化算法,由于options中的参数LargeScale控制;LargeScale=’on’(默认值),使用大型算法;LargeScale=’off(默认值),使用中型算法。(2)fminunc为中型优化算法的搜索方向提供了4种算法,由options中的参数HessUpdate控制:HessUpdate=’bfgs’(默认值),拟牛顿法的BFGS公式;HessUpdate=’dfp’,拟牛顿法的DFP公式;HessUpdate=’steepdesc’,最速下降法;(3)fminunc为中型优化算法的步长以为搜索提供了两种算法,由
7、options中的参数LineSearchType控制:LineSearchType=’quadcubic’(默认值),混合的二次和三次多项式插值;LineSearchType=’cubicpoly’,三次多项式插值。例4-9用MATLAB解一元约束优化问题例4-10用Matlab解多元约束优化问题有约束极值问题的Matlab求解一、一般非线性规划一般非线性规划标准形为:其中:均为非线性函数组成的向量.用Matlab求解上述向题,基本步骤为:(