MATLAB优化工具箱应用简介

MATLAB优化工具箱 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 工具箱函数 常用函数: 一元函数极小值 无约束极小值 线性规划 0-1整数规划 二次规划 约束极小值(非线性规划) 非线性最小二乘 目标达到问题 极小极大问题 X=fminbnd(‘F’,x1,x2) X=fminunc(‘F’,X0) X=fminsearch(‘F’,X0) X=linprog(c,A,b) 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;

然后启动优化工具(如图):

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4