Matlab优化工具箱详解.doc_第1页
Matlab优化工具箱详解.doc_第2页
Matlab优化工具箱详解.doc_第3页
Matlab优化工具箱详解.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Matlab优化工具箱详解(2008-10-20 09:15:00)标签:文化 1fminbnd进行有约束的一元函数最小值求解。它的求解命令是:X = FMINBND(FUN,x1,x2),FUN 是目标函数,可以为表达式字符串或MATLAB自定义函数的函数柄,要求解在约束 x1 = X 0,表示函数收敛于x,若exitflag=0,表示达到了最大迭代次数,exitflag0表示函数不收敛于x;若参数output=iterations表示迭代次数,output=funccount表示函数赋值次数,output=algorithm表示所使用的算法。例子:要求解f(x)=x3-2x-5在(0,2)之间最优解,求解命令如下:f = (x)x.3-2*x-5;x = fminbnd(f, 0, 2);2fminsearch进行多变量函数的无约束优化。格式主要有:x = fminsearch(fun,x0);%对函数fun,从x0开始搜索最优值,返回最优变量xx = fminsearch(fun,x0,options);%可以用optimset设置一些优化选项;x,fval = fminsearch(.);%返回feval为最优函数值;x,fval,exitflag = fminsearch(.);%exitflag与fminbnd类似;x,fval,exitflag,output = fminsearch(.);%output与fminbnd类似;例子:要求函数f (x)= 100*(x(2)-x(1)2)2+(1-x(1)2的最小值,用fminsearch求解如下:fun = (x)100*(x(2)-x(1)2)2+(1-x(1)2;x,fval = fminsearch(fun,-1.2, 1);3fminunc与fminsearch一样,也是对多变量无约束函数优化。指令格式:x = fminunc(fun,x0)x = fminunc(fun,x0,options)x,fval = fminunc(.)x,fval,exitflag = fminunc(.)x,fval,exitflag,output = fminunc(.)x,fval,exitflag,output,grad = fminunc(.);%grad为解x处的梯度值;x,fval,exitflag,output,grad,hessian = fminunc(.);% 目标函数在解x处的海赛(Hessian)值。从算法上来讲,当函数的阶数大于2时,fminunc比fminsearch更有效,因为它采用了基于梯度的优化算法,而fminsearch采用的是Nelder-Mead型简单搜寻法,但是,正因为这样,当函数不连续时,fminsearch的效果反而更好。4fmincon对有约束的多变量函数巡优。格式:x = fmincon(fun,x0,A,b)x = fmincon(fun,x0,A,b,Aeq,beq)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)x,fval = fmincon(.)x,fval,exitflag = fmincon(.)x,fval,exitflag,output = fmincon(.)x,fval,exitflag,output,lambda = fmincon(.)x,fval,exitflag,output,lambda,grad = fmincon(.)x,fval,exitflag,output,lambda,grad,hessian = fmincon(.)其中一些参数的定义见非线性有约束多变量函数的标准形式:min f(x)sub.to C(x)=0 Ceq(x)=0 A*x=b Aeq*x=beq lb=xx = fmincon(myfun,x0,A,b,Aeq,beq,lb,ub,mycon),先建立非线性约束函数,并保存为mycon.m:function C,Ceq = mycon(x)C = % 计算x处的非线性不等约束 的函数值。Ceq = % 计算x处的非线性等式约束的函数值。lambda是Lagrange乘子,它体现哪一个约束有效。output为输出优化信息;grad表示目标函数在x处的梯度;hessian表示目标函数在x处的Hessiab值。例如,目标函数为:function f = myfun(x)f = -x(1) * x(2) * x(3);约束为:0x(1)+2x(2)+2x(3) 72那么我们可以将其写成Axb的

温馨提示

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

评论

0/150

提交评论