QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 8368|回复: 7
打印 上一主题 下一主题

Matlab优化工具箱用法

[复制链接]
字体大小: 正常 放大
qizixin        

1

主题

4

听众

225

积分

升级  62.5%

  • TA的每日心情
    难过
    2012-2-14 00:15
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2010-1-22 21:29 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta |邮箱已经成功绑定

      1 工具箱概述

    1.1 功能

           (1)求解无约束条件非线性极小值;

           (2)求解约束条件下非线性极小值,包括目标逼近问题、极大-极小值问题和半无限极小值问题;

           (3)求解二次规划和线性规划问题;

           (4)非线性最小二乘逼近和曲线拟合;

           (5)非线性系统的方程求解;

           (6)约束条件下的线性最小二乘优化;

           (7)求解复杂结构的大规模优化问题。

    1.2 工具箱的新特色

           MATLAB R2008b使用的是4.1版本的优化工具箱,较3.x的变化在于:

    (1)    fmincon、fminimax和fgoalattain中引入了并行机制,加快梯度计算速度;

    (2)    函数gatool和pserchtool整合到优化工具箱GUI中;

    (3)    函数fmincon的求解器中新增内点算法;

    (4)    提供了KNITRO优化库的接口;

    (5)    函数lsqcurvefit、lsqnonlin和fsolve的优化选项参数PrecondBandWinth默认值由0变为inf;

    (6)    优化选项参数TolConSQP的默认值改为1e-6;

    (7)    输出结构中引入了参数constrviolation。

    2 工具箱函数

    常用函数:

    一元函数极小值X=fminbnd(‘F’,x1,x2)
    无约束极小值X=fminunc(‘F’,X0)X=fminsearch(‘F’,X0)
    线性规划X=linprog(c,A,b)
    0-1整数规划X=bintprog(F)
    二次规划X=quadprog(H,c,A,b)
    约束极小值(非线性规划)X=fmincon(‘FG’,X0)
    非线性最小二乘X=lsqnonlin(F,X0)
    目标达到问题X=fgoalattain(‘F’,x,goal,w)
    极小极大问题X=fminimax(‘FG’,x0)

    输入参数中可以用options,用于所有函数,其中包括有一下参数。

    (1)              Display:结果显示方式,off不显示,iter显示每次迭代的信息,final为最终结果,notify只有当求解不收敛的时候才显示结果。

    (2)              MaxFunEvals:允许函数计算的最大次数,取值为正整数。

    (3)              MaxIter:允许迭代的最大次数,正整数。

    (4)              TolFun:函数值(计算结果)精度,正整数。

    (5)              TolX:自变量的精度,正整数。

    而且可以用函数optimset创建和修改。

           模型输入时需要注意问题:

    (1)    目标函数最小化;

    (2)    约束非正;

    (3)    避免使用全局变量。

    3 GUI优化工具

    3.1 启动

    命令行输入optimtool;

           Start->Toolboxes->Optimization->Optimization tool(optimtool)。

    3.2 界面

    图一:GUI优化工具的界面

           分为三块:

    最左边是优化问题的描述及计算结果显示,中间为优化选项的设置,右边是帮助(可隐藏,右上角的<<)。具体各选项的功能和作用不做记录。

    3.3 使用步骤

    选择求解器solver和优化算法algorithm;

    选定目标函数(objective function);

    设定目标函数的相关参数;

    设置优化选项;

    单击“start”按钮,运行求解;

    查看求解器的状态和求解结果;

    将目标函数、选项和结果导入\导出。

    具体的如图二所示:

    图二:步骤示意图

    Algorithm有两个选择:Large scale和Medium scale,设置完参数点击start即可得到如图中的结果。

    3.4.2 无约束优化(fminsearch求解器)

    求f(x)=|x^2-3*x+2|的极小值,初始点取x=-7,比较fminunc和fminsearch的差别。

    解:启动优化工具;

    用fminunc时设置参数如图:

    点击start得到结果。

    用fminsearch时如下图:

    用fminunc时结果是1.5,而用fminsearch时结果是2。计算原等式有极小值为2,由此有对于非光滑优化问题fminunc可能求不到正确的结果,而fminsearch却能很好地解决这类问题的求解。

    3.4.3 约束优化(fmincon求解器)

    可用算法有Trust region reflective(信赖域反射算法)、Active set(有效集算法)、Interior point(内点算法)。

    求f(x)=-x1*x2*x3的极小值,约束条件是-x1-2*x2-2*x3<=0且x1+2*x2+2*x3<=72,初始点(10,10,10)。

    解:首先见M文件,约定FunUnc(x)=-x(1)*x(2)*x(3):

    function y=FunUnc(x)

    y=-x(1)*x(2)*x(3);

    启动优化工具,设置参数如图:

    3.4.4 非线性最小二乘优化(lsqnonlin求解器)

    求minS=(x^2+x-1)^2+(2*x^2-3)^2 ,初始点为x=5 。

    解:启动优化工具,设置参数,点start得结果如下图所示;

    3.4.5 线性规划(linprog求解器)

           略,f处输入函数多项式的系数。基本方法如前面几类。

    3.4.6 智能优化算法(ga求解器)

           略,要输入变量的个数。基本方法如前面几类。

    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏1 支持支持1 反对反对0 微信微信
    hupanfeng 实名认证       

    0

    主题

    3

    听众

    149

    积分

    升级  24.5%

    该用户从未签到

    自我介绍
    hello~大家好~
    谢谢楼主~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    点评

    大鲵2003  学习  发表于 2011-12-4 00:26
    回复

    使用道具 举报

    5

    主题

    5

    听众

    352

    积分

    升级  17.33%

  • TA的每日心情
    擦汗
    2014-9-13 11:51
  • 签到天数: 86 天

    [LV.6]常住居民II

    群组数学建模

    群组2011年第一期数学建模

    群组数学建模培训课堂1

    回复

    使用道具 举报

    11

    主题

    4

    听众

    158

    积分

    升级  29%

  • TA的每日心情
    难过
    2013-1-26 09:49
  • 签到天数: 26 天

    [LV.4]偶尔看看III

    群组小草的客厅

    群组Matlab讨论组

    群组数学建模

    群组数学建摸协会

    群组华南理工大学

    回复

    使用道具 举报

    68

    主题

    10

    听众

    1384

    积分

    升级  38.4%

  • TA的每日心情
    慵懒
    2013-5-29 19:03
  • 签到天数: 185 天

    [LV.7]常住居民III

    发帖功臣

    群组2012第三期美赛培训

    群组数学建摸协会

    群组科技写作基础培训

    群组中国矿业大学数模培训

    群组数学建模培训课堂2

    回复

    使用道具 举报

    backytutu        

    2

    主题

    3

    听众

    61

    积分

    升级  58.95%

  • TA的每日心情
    开心
    2012-3-4 17:22
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    回复

    使用道具 举报

    mld        

    1

    主题

    10

    听众

    65

    积分

    升级  63.16%

  • TA的每日心情
    难过
    2015-2-7 14:26
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    自我介绍
    ...
    回复

    使用道具 举报

    zxyzxyzxy        

    0

    主题

    14

    听众

    72

    积分

    升级  70.53%

  • TA的每日心情
    无聊
    2015-8-19 10:19
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    自我介绍
    新手求带

    社区QQ达人

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-8-24 01:46 , Processed in 0.759033 second(s), 92 queries .

    回顶部