Matlab优化工具箱
1 工具箱概述
计算机学院软件工程系38专业
C#.NET,ASP.NET,软件工程,UML
Matlab,SPSS,BI, SAS
王华秋
1.1 工具箱的功能
优化工具箱主要可以用于解决以下问题:
(1)求解无约束条件非线性极小值;
(2)求解约束条件下非线性极小值,包括目标逼近问题、极大-极小值问题以及半无限极小值问题;
(3)求解二次规划和线性规划问题;
(4)非线性最小二乘逼近和曲线拟合;
(5)非线性系统的方程求解;
(6)约束条件下的线性最小二乘优化;
(7)求解复杂结构的大规模优化问题。
1.2 工具箱的新特色
MATLAB R2008b提供的优化工具箱是4.1版本,4.1版本较之以前的3.x版本,主要增加了以下新的特色。
(1)函数fmincon、fminimax和fgoalattain中引入了并行机制,加快了梯度的计算速度;
(2)函数gatool和psearchtool 整合到优化工具箱GUI中;
(3)函数fmincon的求解器中新增内点算法;
(4)提供了KNITRO优化库的接口;
(5)函数lsqcurvefit、lsqnonlin和fsolve的优化选项参数PrecondBandWidth默认值由0变为inf;
(6)优化选项参数TolConSQP的默认值修改为1e–6;
(7)输出结构中引入了参数constrviolation。
1.3 工具箱的结构
模型输入时需要注意的问题
(1)目标函数最小化
优化函数fminbnd、fminsearch、fminunc、fmincon、fgoalattain、fminmax和lsqnonlin都要求目标函数最小化。
(2)约束非正
优化工具箱要求非线性不等式约束的形式为Ci(x)≤0,通过对不等式取负可以达到使大于零的约束形式变为小于零的不等式约束形式的目的。
(3)避免使用全局变量ce Model.vi”等VI来实现。
2 工具箱函数
3 GUI优化工具
优化工具(optimtool)是2006年9月在MATLAB 7.2版本优化工具箱3.1版本中推出的,它是执行下列常见优化任务的图形用户界面。
选择求解器并定义优化问题;
设置和检查优化选项;
运行问题并将结果可视化;
在MATLAB工作空间和优化工具之间导入和导出问题定义、算法选项和结果;
自动生成M文件代码,以获取工作并自动执行任务;
带有图形选项,用来显示对求解器执行期间进度的预定义或自定义测量标准。
3.1 GUI优化工具的启动
启动GUI Optimization tool有以下两种方法。
(1)在命令行上输入optimtool;
(2)在MATLAB主界面单击左下角的“Start”按钮,然后依次选择“Toolboxes→Optimization→Optimization tool(optimtool)。
图5-2 优化工具图形界面的菜单启动方式
图5-3 优化工具图形界面
3.2 GUI优化工具的界面
GUI优化工具的界面主要分为三大块:
左边为优化问题的描述及计算结果显示(Problem Setup and Results);
中间为优化选项的设置(Options);
右边为帮助(Quick Reference)。
为了界面的简洁,可以单击右上角的“<
2.优化选项
GUI优化工具的优化选项包括9大类。
Stopping criteria:停止准则;
Function value check:函数值检查;
User-supplied derivatives:用户自定义微分(或梯度)函数;
Approximated derivatives:自适应微分(或梯度);
Algorithm settings:算法设置;
Inner iteration stopping criteria:内迭代停止准则;
Plot functions:用户自定义绘图函数;
Output functions:用户自定义输出函数;
Display to command window:输出到命令行窗口。
3.3 GUI优化工具使用步骤
3.4 GUI优化工具应用实例
例1fminunc求解器应用实例fminunc求解器)
建立目标函数文件FunUnc.m文件:
function y = FunUnc(x)
y = x^2 + 4*x -6;
然后启动优化工具:
在Solver下拉选框中选择fminunc;
Algorithm下拉选框中选择Medium scale;
目标函数栏输入@FunUnc;
初始点输入0,其余参数默认;
单击Start按钮运行。
例2fmin