Matlab经典优化函数详细介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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)
n
R x x
f ∈'b x A ≤⋅beq
x Aeq =⋅ub
x lb ≤≤b
x A ≤⋅
%设置初值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为关于优化的一些信息.
说明: 若exitflag>0表示函数收敛于解x,exitflag=0表示超过函数估值或迭代的最大次数,exitflag<0表示函数不收敛于解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.x1 无约束极小Min F(X) X=fminunc(‘F’,X0) X=fminsearch(‘F’,X0) 线性规划 Min X c T s.t.AX<=b X=linprog(c,A,b) 二次规划 Min 2 1x T Hx+c T x s.t. Ax<=b X=quadprog(H,c,A,b) 约束极小 (非线性规划) Min F(X) s.t. G(X)<=0 X=fmincon(‘FG ’,X 0) 多目标优化问题 Min r s.t. F(x)-wr<=goal X=fgoalattain(‘F ’,x,goal,w) 极小极大问题 Min max {F i (x)} X {Fi(x)} s.t. G(x)<=0 X=fminimax(‘FG ’,x 0) 优化函数的输入变量 优化函数的输出变量 变量 描 述 调用函数 f 线性规划的目标函数f*X 或二次规划的目标函 数X ’*H*X+f*X 中线性项的系数向量 linprog,quadprog fun 非线性优化的目标函数.fun 必须为行命令对象 或M 文件、嵌入函数、或MEX 文件的名称 fminbnd,fminsearch,fminunc, fmincon,lsqcurvefit,lsqnonlin, fgoalattain,fminimax H 二次规划的目标函数X ’*H*X+f*X 中二次项的系 数矩阵 quadprog A,b A 矩阵和b 向量分别为线性不等式约束: b AX ≤中的系数矩阵和右端向量 linprog,quadprog,fgoalattain, fmincon, fminimax Aeq,beq Aeq 矩阵和beq 向量分别为线性等式约束: beq X Aeq =⋅中的系数矩阵和右端向量 linprog,quadprog,fgoalattain, fmincon, fminimax vlb,vub X 的下限和上限向量:vlb ≤X ≤vub linprog,quadprog,fgoalattain, fmincon,fminimax,lsqcurvefit, lsqnonlin X 0 迭代初始点坐标 除fminbnd 外所有优化函数 x 1,x 2 函数最小化的区间 fminbnd options 优化选项参数结构,定义用于优化函数的参数 所有优化函数