资源描述:
《Matlab经典优化函数详细介绍.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Matlab经典优化函数详细介绍----------------Matlab优化工具箱简介5.1线性优化线性规划问题是目标函数和约束条件均为线性函数的问题,MATLAB7.0解决的线性规划问题的标准形式为minsub.to:其中f、x、b、beq、lb、ub为向量,A、Aeq为矩阵.其它形式的线性规划问题都可经过适当变换化为此标准形式.在MATLAB5.x以上版中,线性规划问题LinearProgramming已用函数linprog取代了MATLAB5.x版中的lp函数.当然,由于版本的向下兼容性,一般说来,低版本中的函数在7.0版中仍可
2、使用.函数linprog格式x=linprog(f,A,b)%求minf'*xsub.to线性规划的最优解.x=linprog(f,A,b,Aeq,beq)%等式约束,若没有不等式约束,则A=[],b=[].x=linprog(f,A,b,Aeq,beq,lb,ub).%指定x的范围,若没有等式约束,则Aeq=[],beq=[].x=linprog(f,A,b,Aeq,beq,lb,ub,x0)%设置初值x0.x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)%options为指定的优化参数.[x,fval
3、]=linprog(…)%返回目标函数最优值,即fval=f'*x.[x,lambda,exitflag]=linprog(…)%lambda为解x的Lagrange乘子.[x,lambda,fval,exitflag]=linprog(…)%exitflag为终止迭代的错误条件.[x,fval,lambda,exitflag,output]=linprog(…)%output为关于优化的一些信息.说明:若exitflag>0表示函数收敛于解x,exitflag=0表示超过函数估值或迭代的最大次数,exitflag<0表示函数不收敛于解x
4、;若lambda=lower表示下界lb,lambda=upper表示上界ub,lambda=ineqlin表示不等式约束,lambda=eqlin表示等式约束,lambda中的非0元素表示对应的约束是有效约束;output=iterations表示迭代次数,output=algorithm表示使用的运算规则,output=cgiterations表示PCG迭代次数.MATLAB求解优化问题的主要函数类型模型基本函数名一元函数极小MinF(x)s.t.x15、nunc(‘F’,X0)X=fminsearch(‘F’,X0)线性规划Mins.t.AX<=bX=linprog(c,A,b)二次规划MinxTHx+cTxs.t.Ax<=bX=quadprog(H,c,A,b)约束极小(非线性规划)MinF(X)s.t.G(X)<=0X=fmincon(‘FG’,X0)多目标优化问题Minrs.t.F(x)-wr<=goalX=fgoalattain(‘F’,x,goal,w)极小极大问题Minmax{Fi(x)}X{Fi(x)}s.t.G(x)<=0X=fminimax(‘FG’,x0)优化函数的输
6、入变量优化函数的输出变量5.2非线性优化5.2.1有约束的一元函数的最小值单变量函数求最小值的标准形式为sub.to函数fminbnd格式x=fminbnd(fun,x1,x2)%返回自变量x在区间上函数fun取最小值时x值,fun为目标函数的表达式字符串或MATLAB自定义函数的函数柄.x=fminbnd(fun,x1,x2,options)[x,fval]=fminbnd(…)[x,fval,exitflag]=fminbnd(…)[x,fval,exitflag,output]=fminbnd(…)例5-2计算下面函数在区间(0,1
7、)内的最小值.解:>>[x,fval,exitflag,output]=fminbnd('(x^3+cos(x)+x*log(x))/exp(x)',0,1)x=0.5223fval=0.3974exitflag=1output=iterations:9funcCount:9algorithm:'goldensectionsearch,parabolicinterpolation'例5-3在[0,5]上求下面函数的最小值解:先自定义函数:在MATLAB编辑器中建立M文件为:functionf=myfun(x)f=(x-3).^2-1;保存
8、为myfun.m,然后在命令窗口键入命令:>>x=fminbnd(@myfun,0,5)则结果显示为:x=35.2.2无约束多元函数最小值多元函数最小值的标准形式为其中:x为向量.命令利用函数