文档详情

Matlab经典优化函数详细介绍.doc

发布:2017-03-15约1.33万字共22页下载文档
文本预览下载声明
Matlab经典优化函数详细介绍 ----------------Matlab优化工具箱简介 5.1 线性优化 线性规划问题是目标函数和约束条件均为线性函数的问题,MATLAB7.0解决的线性规划问题的标准形式为 min sub. to: 其中f、x、b、beq、lb、ub为向量,A、Aeq为矩阵. 其它形式的线性规划问题都可经过适当变换化为此标准形式. 在MATLAB5.x以上版中,线性规划问题Linear Programming已用函数linprog取代了MATLAB5.x版中的lp函数.当然,由于版本的向下兼容性,一般说来,低版本中的函数在7.0版中仍可使用. 函数 linprog 格式 x = linprog(f,A,b) %求min f *x sub.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] = linprog(…) % 返回目标函数最优值,即fval= f *x. [x,lambda,exitflag] = linprog(…) % lambda为解x的Lagrange乘子. [x, lambda,fval,exitflag] = linprog(…) % exitflag为终止迭代的错误条件. [x,fval, lambda,exitflag,output] = linprog(…) % output为关于优化的一些信息. 说明: 若exitflag0表示函数收敛于解x,exitflag=0表示超过函数估值或迭代的最大次数,exitflag0表示函数不收敛于解x;若lambda=lower 表示下界lb,lambda=upper表示上界ub,lambda=ineqlin表示不等式约束,lambda=eqlin表示等式约束,lambda中的非0元素表示对应的约束是有效约束;output=iterations表示迭代次数,output=algorithm表示使用的运算规则,output=cgiterations表示PCG迭代次数. MATLAB求解优化问题的主要函数 类 型 模 型 基本函数名 一元函数极小 Min F(x)s.t.x1xx2 x=fminbnd(‘F’,x1,x2) 无约束极小 Min F(X) X=fminunc(‘F’,X0) X=fminsearch(‘F’,X0) 线性规划 Min s.t.AX=b X=linprog(c,A,b) 二次规划 Min xTHx+cTx s.t. Ax=b X=quadprog(H,c,A,b) 约束极小 (非线性规划) Min F(X) s.t. G(X)=0 X=fmincon(‘FG’,X0) 多目标优化问题 Min r s.t. F(x)-wr=goal X=fgoalattain(‘F’,x,goal,w) 极小极大问题 Min max {Fi(x)} X {Fi(x)} s.t. G(x)=0 X=fminimax(‘FG’,x0) 优化函数的输入变量 优化函数的输出变量 5.2非线性优化 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)内的最小值.
显示全部
相似文档