MATLAB的优化工具箱

  • 格式:doc
  • 大小:31.00 KB
  • 文档页数:2

MATLAB的优化工具箱(optimization toolbox)
求一元函数fun在区间[a,b]中的无条件极小值f和极小值点x
[x,f]=fminbnd(fun,a,b)
其中目标函数fun可以是@m函数名, 也可以是用内联(inline)函数定义的函数,也可以是匿名函数格式是@(x) 函数表达式
求多元目标函数fun在点x0(向量)附近的无条件极小值f和极小值点x(向量)
[x,f]=fminsearch(fun,x0)
例:
fun=inline(‘x(1)^4+x(2)^4-4*x(1)*x(2)-5’);
[x,f]=fminsearch(fun,[0,0])
得到x=[1,1], f = -7
注:也可以用fminunc求无条件最小问题,效率比用fminseach 要高。

求多元目标函数fun 在x0附近在条件
A*x<=b;
Aeq*x=beq;
lb<=x<=ub;
及非线性条件c(x)<=0, ceq(x)=0约束下的极小值f和极小值点x
用法是
[x,f]= fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
输入的第二项以后没有的项可以不写,或写[],输出中第二项以后的项可以不写。

其中nonlcon是非线性条件函数,可以如下编写(函数名自定)
function [c,ceq] = nonlcon(x)
c = ... % 条件c(x)<= 0. 中的c(x)的表达式
ceq = ... %条件ceq(x)=0. 中的ceq(x)的表达式.
options是改变默认的设置的选项。

例如在调用优化函数之前先规定
options=optimset(‘TolFun’, 1e-30,’TolX’,1e-15,’TolCon’,1e-20);
其中TolFun是函数误差,TolX 是解的误差,TolCon是条件的误差
要了解更多的用法,使用MATLAB的帮助。

对于线性规划,MA TLAB有专用的函数:
bintprog() 0-1线性规划
lingrog() 线性规划
对于二次规划有
quadprog()
对于求极大中的极小有
fminmax()
这些函数的用法, 请使用MATLAB的帮助。

注意,
1. MA TLAB中没有一般的整数规划, 求得的极小不能保证是最小的. 整数规划要用LINGO 软件. 另外LINGO也可用于求解其他非线性规划, 而且可以得到全局的结果.
2.求根函数fsolve及最小二乘曲线拟合函数lsqcurvefit都是放在优化工具箱中介绍的.。