MATLAB优化工具箱详解

   日期:2024-12-27    作者:wtyad 移动:http://ljhr2012.riyuangf.com/mobile/quote/57255.html

  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”按钮,运行求解

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

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

具体的如图二所示

图二:步骤示意图

3.4 应用实例

3.4.1 无约束优化(fminunc求解器

求f(x)=x^2+4*x-6极小值,初始点取x=0。

:首先建立目标函数文件FunUnc.m文件

function y=FunUnc(x)

y=x^2+4*x-6;

然后启动优化工具(如图

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求解器


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号