MATLAB的优化函数.ppt
《MATLAB的优化函数.ppt》由会员分享,可在线阅读,更多相关《MATLAB的优化函数.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.Matlab1.Matlab优化工具箱简优化工具箱简介介1)MATLAB1)MATLAB求解优化问题的主要函数求解优化问题的主要函数类 型模 型基本函数名一元函数极小Min F(x)s.t.x1xx2x=fminbnd(F,x1,x2)无约束极小Min F(X)X=fminunc(F,X0)X=fminsearch(F,X0)线性规划Min XcTs.t.AX=bX=linprog(c,A,b)二次规划Min 21xTHx+cTxs.t. Ax=bX=quadprog(H,c,A,b)约束极小(非线性规划)Min F(X)s.t. G(X)=0X=fmincon(FG,X0)达到目标问题M
2、in rs.t. F(x)-wr=goalX=fgoalattain(F,x,goal,w)极小极大问题Min max Fi(x)X Fi(x)s.t. G(x)=0X=fminimax(FG,x0)2) 2) 优化函数的输入变量优化函数的输入变量 使用优化函数或优化工具箱中其它优化函数时, 输入变量见下表:变量描 述调用函数f线性规划的目标函数f*X 或二次规划的目标函数X*H*X+f*X 中线性项的系数向量linprog,quadprogfun非线性优化的目标函数.fun必须为行命令对象或M文件、嵌入函数、或MEX文件的名称fminbnd,fminsearch,fminunc,fminco
3、n,lsqcurvefit,lsqnonlin,fgoalattain,fminimaxH二次规划的目标函数X*H*X+f*X 中二次项的系数矩阵quadprogA,bA矩阵和b向量分别为线性不等式约束:bAX 中的系数矩阵和右端向量linprog,quadprog,fgoalattain,fmincon, fminimaxAeq,beqAeq矩阵和beq向量分别为线性等式约束:beqXAeq中的系数矩阵和右端向量linprog,quadprog,fgoalattain,fmincon, fminimaxvlb,vubX的下限和上限向量:vlbXvublinprog,quadprog,fgoa
4、lattain,fmincon,fminimax,lsqcurvefit,lsqnonlinX0迭代初始点坐标除fminbnd外所有优化函数x1,x2函数最小化的区间fminbndoptions优化选项参数结构,定义用于优化函数的参数所有优化函数3) 3) 优化函数的输出变量下表优化函数的输出变量下表: :用用MatlabMatlab解无约束优化问题解无约束优化问题 1. 一一元元函函数数无无约约束束优优化化问问题题: : min f(x) 21xxx 其中(3)、(4)、(5)的等式右边可选用(1)或(2)的等式右边。 函数fminbnd的算法基于黄金分割法和二次插值法,它要求目标函数必须是
5、连续函数,并可能只给出局部最优解。常用格式如下:常用格式如下:(1)x= fminbnd (x= fminbnd (fun,xfun,x1 1,x,x2 2) )(2)x= fminbnd (x= fminbnd (fun,xfun,x1 1,x,x2 2 ,options)options)(3)xx,fval= fminbndfval= fminbnd(.)(4)xx,fvalfval,exitflag= fminbndexitflag= fminbnd(.)(5)xx,fvalfval,exitflagexitflag,output= fminbndoutput= fminbnd(.)运行
6、结果: xmin = 3.9270 ymin = -0.0279 xmax = 0.7854 ymax = 0.6448 主程序为主程序为wliti1.m:wliti1.m: 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、求解多维无约束优化问题的函数fminuncnfminunc是基于梯度搜索法实现的优化工具箱函数,它的语法说明如下:nx,fval,exitflag,output,grad,hessia
7、nn =fminunc(fun,x0,options,P1,P2)n其中,输出参数有:nx是返回目标函数的最优解;nfval是返回目标函数在最优解x点的函数值;nexitflag是返回算法的终止标志;noutput是返回优化算法的信息的一个数据结构;ngrad是返回目标函数在最优解x点的梯度;nhessian是返回目标函数在最优解x点的hessian矩阵值。 n输入参数有:nfun是调用目标函数的函数文件名;nx0是初始点;options是设置优化选项参数,包括有18个元素,用以在计算时控制精度要求、输出形式、算法选择、迭代次数、梯度等重要问题。可用空矩阵符号“ ”表示它的默认值;nP1、P2
8、等是传递给fun的附加参数。 例例 已知梯形截面管道的参数是:底边长度为 ,高度为 ,面积 ,斜边与底边的夹角为 .管道内液体的流速与管道截面的周长 的倒数成比例关系 。试按照使液体流速最大确定该管道的参数。 n解:1、建立优化设计的建立优化设计的数学模型数学模型n管道截面周长n由管道截面面积n得到底边长度关系式 ch264516mmA scot64516cot645162hhhhc64516cot2hchAsin2hcsn将它代入式管道截面周长的关系式中,得到n n因此,取与管道截面周长有关的两个独立参数作为设计变量,即n n为使液体流速最大,取管道截面周长最小作为目标函数,即n n这是一个
9、二维无约束非线性优化问题。 sin2cot64516hhhssin2tan64516hhhhxxX2121211sin2tan64516)(minxxxxxXfn2、编制MATLAB目标函数文件nfunction f=sc_wysyh(x)na=64516;nf=a/x(1)-x(1)/tan(x(2)*pi/180)+2*x(1)/sin(x(2)*pi/180);n编制调用无约束优化工具函数fminunc文件nx0=25;45;nx,fval=fminunc(sc_wysyh,x0)n程序运行后得到优化结果:nx =n 192.9983 (梯形截面高度)n 60.0000 (梯形截面斜边与
10、底边夹角)nfval =n 668.5656 (梯形截面周长) n3、编制绘制目标函数等值线和曲面图的程序 nxx1=linspace(100,300,25);nxx2=linspace(30,120,25);nx1,x2=meshgrid(xx1,xx2);nf=64516./x1-x1./tan(x2*pi/180)+2*x1./sin(x2*pi/180);nsubplot(1,2,1);nh=contour(x1,x2,f); % 绘制等高线并标注高程nclabel(h);%等高线高程标志函数naxis(100 300 30 120)nxlabel(高度 h (mm)nylabel(倾
11、斜角 (度)ntitle(目标函数等值线)nsubplot(1,2,2);nsurfc(x1,x2,f);naxis(100 300 30 120 600 1200)ntitle(目标函数曲面图)用Matlab解约束极小值问题fminconnfmincon是求解多维约束优化问题n的优化工具箱函数。)()(0)(0)()()(: . .)(min边界约束非线性等式约束)(非线性不等式约束)(线性等式约束线性不等式约束UbXLbXCeqXCbeqXAeqbAXtsXfn它的语法说明如下:nx,fval,exitflag,output,lambda,grad,hession=nfmincon(fun
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 优化 函数
限制150内