Matlab优化工具箱详解.doc

上传人:ni****g 文档编号:558929092 上传时间:2023-08-18 格式:DOC 页数:4 大小:33.51KB
返回 下载 相关 举报
Matlab优化工具箱详解.doc_第1页
第1页 / 共4页
Matlab优化工具箱详解.doc_第2页
第2页 / 共4页
Matlab优化工具箱详解.doc_第3页
第3页 / 共4页
Matlab优化工具箱详解.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《Matlab优化工具箱详解.doc》由会员分享,可在线阅读,更多相关《Matlab优化工具箱详解.doc(4页珍藏版)》请在金锄头文库上搜索。

1、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)

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 = fm

3、insearch(.);%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

4、,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对有约束的多变量函数巡

5、优。格式: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,l

6、ambda = 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 = % 计算

7、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的形式,则A=-1 -2 -2;1 2 2;b=0;b;求解命令为:x0 = 10; 10; 10; % 初始值x,fval = fmincon(myfun,x0,A,b)注:以上大部分来自Matlab help。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

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