matlab优化工具箱笔记(1)

1、线性规划

[x,fval]=linprog(c,A,b,Aeq,Beq,VLB,VUB)

用于解决

min(z)=cX%%求满足条件的X与已定系数c乘积之和的最小值
s.t. 
AX<=b    %不定约束
AeqX=Beq   %定约束
VLB<=X<=VUB %天花板约束

2. matlab优化工具箱求解优化问题的主要函数


3.优化函数的输入变量


4.优化函数的输出变量


5.options的设置

(1)Display (显示水平):

off不显示输出;iter显示每次迭代的信息;final显示最终结果;默认为final;

(2)MaxFunEvals(允许函数评价的最大次数):取值为正整数;

(3)MaxIter(允许进行迭代的最大次数):取值为正整数;

* MaxFunEvals与MaxIter的区别:

(4)FunValCheck:'on' 当目标函数返回值是一个complex、inf、NaN时,显示一个erro;'off'则不显示

(5)TolX;X的退出条件 为一个正的标量。默认为1e-4

MaxFunEvals是目标函数的调用次数,而MaxIter是迭代次数。在一次迭代中,可能需要多次调用目标函数。

options的创建和修改:

options = optimset('param1',value1,'param2',value2,...) %设置所有参数及其值,未设置的为默认值
options = optimset                                                         %全部设置为默认                                                   
options = optimset(optimfun)                                        %设置与最优化函数有关的参数为默认
options = optimset(oldopts,'param1',value1,...)             %复制一个已存在的选项,修改特定项

options = optimset(oldopts,newopts)                            %用另一个新选项合并目前选项


6.一元函数无约束问题求解(fminbnd)%不一定是一次函数

**fminbnd的算法是基于黄金分割法和二次插值法,它要求目标函数必须是连续函数,并可能只给出局部最优解

fimbnd函数:在固定的区间上找到单变量函数的最小值。

(find minimun of single-variable function on fixed interval)


* x1;x2;output(x)都要是标量

常用格式如下:

(1)x= fminbnd (fun,x1,x2)

(2)x= fminbnd (fun,x1,x2 ,options)

(3)[x,fval]= fminbnd(...)

(4)[x,fval,exitflag]= fminbnd(...)

(5)[x,fval,exitflag,output]= fminbnd(...)


例子:

clc;
clear;
%%求解f在x=0~8之间的最小和最大值
%%
%% 第一步:设定函数
f='2*exp(-x).*sin(x)';
f1='-2*exp(-x).*sin(x)';


%% 第二步:优化函数参数设定
options=optimset('Display','iter',...%%显示每次每次迭代的信息
    'FunValCheck','on',...%%函数输出值可用性检测
    'MaxFunEvals',800,...%%允许函数评价的最多次数
    'MaxIter',1000,...%%允许进行迭代的最大次数
    'PlotFcns',@optimplotfunccount,...%%图像显示@optimplotx,显示当前x的值;
     'TolX',1e-4);%X的终止误差        %%@optimplotfval,显示函数值变化情况
                                     %%@optimplotfunccount,显示函数的计数?
    
%%计算
[xmin,ymin,exitflag,output]=fminbnd (f, 0,8,options) 

%exitflag表示函数退出条件,1-函数找到结果;0-函数最大功能评价次数或者迭代次数达到;-1-算法由外部函数结束
[xmax,ymax]=fminbnd (f1, 0,8,options)


7.多元函数无约束优化问题

多元函数无约束优化问题可以通过两种函数,

1.[x,fval,exitflag,output]=fminunc(fun,x0,options);

2.[x,fval,exitflag,output]=fminsearch(fun,x0,options)

x0可以是标量、向量、矩阵 fun是一个函数句柄

(1)fminsearch 是用单纯形法寻优法

这是一种不会使用数值或者梯度分析的直接的方法。

(2)fminunc:找到非约束多变量函数的最小值。(这里需要补充)

fminunc 为无约束优化提供了大型优化和中型优化算法。由options中参数LargeScale控制:

LargeScale='on',使用大型算法

LargeScale='off',使用中型算法

** fminunc为中型优化算法的搜索方向提供了4中算法,由options中的参数HessUpdate控制

HessUpdate=‘bfgs’(默认值),为拟牛顿的BFGS法

HessUpdate='dfp'为拟牛顿DFP法

HessUpdate=‘steepdesc’最速下降法

**fminunc中为中型优化算法的步长一维搜索提供了两种算法,由options中参数LineSearchType控制,

LineSearchType='quadcubic'混合的二次和三次多项式插值

LineSearchType=‘cubicpoly’三次多项式插值

*使用fminunc和fminsearch都可能会得到局部最优解。


非线性规划の二次规划

标准型为 


与线性规划的不同只在于评价函数的不同

用Matlab软件求解,其输入格式如下:

[x,fval,exitflag,output]=quaprog(H,C,A,b,Aeq,Beq,VLB,VUB,X0,options)


一般非线性规划

标准型为:



用Matlab求解上述问题,基本步骤分为三步:

1、首先建立M文件 fun.m定义目标函数F(X)

function f=fun(x)

f=F(X)

2、若约束条件中由非线性约束:G(X)<=0或Ceq(X)=0,

则建立M文件nonlcon.m定义函数G(X)和Ceq(X)

function [G,Ceq]=nonlcon(X)

G=G(X)

Ceq=Ceq(X)

3、建立主程序,非线性规划求解的函数时fmincon,命令的基本格式如下:

[x,fval,exitflag,output]=fmincon('fun',X0,A,b,Aeq,beq,VLB,VUB,'nonlcon',options)


** fmincon 函数提供了大型优化算法和中型优化算法。 默认时:

若在fun函数中提供了梯度,即GradObj设置为‘on’,并且只有上下界存在或只有等式约束时,

fmincon函数将选择大型算法。如果既有梯度约束又有等式约束的话,那么使用中型算法。

fmincon函数中型算法使用的矢序列二次规划法。即在每一次迭代中求解二次规划子问题,

并用BFGS法更新拉格朗日Hessian矩阵

fmincon函数可能会给出局部最优解,这与初值的选择有关.













  • 33
    点赞
  • 244
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
matlab优化程序包括:无约束一维极值问题、进退法、黄金分割法、斐波那契法、牛顿法基本牛顿法、全局牛顿法、割线法、抛物线法、三次插值法、可接受搜索法、Goidstein法、Wolfe Powell法、单纯形搜索法、Powell法、最速下降法、共轭梯度法、牛顿法、修正牛顿法、拟牛顿法、信赖域法、显式最速下降法、Rosen梯度投影法、罚函数法、外点罚函数法、內点罚函数法、混合罚函数法、乘子法、G-N法、修正G-N法、L-M法、线性规划、单纯形法、修正单纯形法、大M法、变量有界单纯形法、整数规划、割平面法、分支定界法、0-1规划、二次规划、拉格朗曰法、起作用集算法、路径跟踪法、粒子群优化算法、基本粒子群算法、带压缩因子的粒子群算法、权重改进的粒子群算法、线性递减权重法、自适应权重法、随机权重法、变学习因子的粒子群算法、同步变化的学习因子、异步变化的学习因子、二阶粒子群算法、二阶振荡粒子群算法 (matlab optimization process includes Non-binding one-dimensional extremum problems Advance and retreat method Golden Section Fibonacci method of basic Newton s method Newton s method Newton s Law of the global secant method parabola method acceptable to the three interpolation search method Goidstein France Wolfe.Powell France Simplex search method Powell steepest descent method Conjugate gradient method Newton s method Newton s method to amend Quasi-Newton Method trust region method explicitly steepest descent method, Rosen gradient projection method Penalty function method outside the penalty function method within the penalty function method Mixed penalty function multiplier method G-N was amended in G-N method L-M method Of linear programming simplex method, revised simplex method Big M method variables bounded simplex method, Cutting Plane Method integer programming branch and bound method 0-1 programming quadratic programming )

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值