Matlab 优化工具箱使用说明
Matlab 优化工具箱使用说明
目录
目录 ..................................................................................................................................................1
声 明 ..............................................................................................................................................2
1.一个简单的示例............................................................................................................................3
2.优化工具箱简介............................................................................................................................5
2.1.优化工具箱概述.................................................................................................................5
2.2.优化工具箱函数.................................................................................................................7
2.3.优化函数的变量说明.........................................................................................................9
2.4.控制优化算法的参数选项以及设置...............................................................................11
2.5.最优化方法词汇英汉对照表...........................................................................................14
3.优化函数linprog的中文使用说明 ..............................................................................................16
4.利用linprog求解产销不平衡的运输模型 ..................................................................................19
4.1.优化工具箱的工程应用步骤...........................................................................................19
4.2.问题...................................................................................................................................19
4.3.模型分析...........................................................................................................................19
4.4.模型建立...........................................................................................................................20
4.5.linprog求解模型 ...............................................................................................................20
5.Matlab介绍及特点 ......................................................................................................................23
6.Matlab的帮助系统 ......................................................................................................................25
6.1.命令行帮助(指令帮助)...............................................................................................25
6.2.联机帮助...........................................................................................................................30
6.3.演示帮助...........................................................................................................................30
7.MATLAB 函数编写方法与应用...............................................................................................31
8.Matlab 学习的较好网站: ...........................................................................................................33
9.几本经典的书..............................................................................................................................33
-1-
Matlab 优化工具箱使用说明
声 明
Matlab 是当今国际上科学界最具影响力、也是最有活力的软件之一,它提供
了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、
便捷的与其他程序和语言接口、工具箱的开放扩展功能。目前 MATLAB 产品
的工具箱就有四十多个,分别涵盖了数据获取、科学计算、控制系统设计与分析、
数字信号处理、数字图像处理、金融财务分析以及生物遗传工程等专业领域 ,
可以说是本“小百科全书”了。
在短短的 32 页纸中要详尽描述 Matlab 的功能,这是不合理也是不可能的。
Matlab 的整体结构可以说成“基本操作+工具箱”,每个工具箱对应着某个专业
领域,而现在的科学技术往往是好几门学科交叉一起,要求我们掌握多个工具箱。
本文的目的只是希望在最短的时间内,大家能有效的把握 Matlab 的大体轮廓,
并对优化工具箱能有一定的了解,举一反三,即把大家引入功能强大的 Matlab
世界中。
在这里,我们主要介绍 Matlab 的优化工具箱(Optimization Toolbox)的使
用说明,因而将略过 Matlab 的基本操作,对不可省的部分进行略加说明,详情
可以查询市面上众多的 Matlab 书籍中的某一本。
本使用说明结构为:以一个简单例子作为开始,介绍 Matlab 优化工具箱的
使用环境;接着以在线帮助文件,对优化工具箱进行整体介绍;我们以最常用的
线性规划模型求解函数 linprog 作为典型,进行了解说,其它优化函数与 linprog
结构类似;给出了工程应用的求解步骤;最后以一个产销不平衡的运输问题作为
工具箱使用说明的结束。为适合初中级使用者的进一步学习,给出了 Matlab 整
体的介绍,以及学习方法和资源,对优化工具箱所涉及到的方面尽可能做到了说
明,并给出了一些实用的方法。在应用优化工具箱碰到不清楚的地方,可以参考
后面的说明。
-2-
Matlab 优化工具箱使用说明
1.一个简单的示例
f
(
5
我们有如下的优化问题:
x
min
1
+
4
2
−=
x
−
x
2
x
3
x
)
x
+
2
+
+
3
x
2
1
1
1
ts
..
⎧
⎪
⎪
⎪
⎨
⎪
⎪
⎪
⎩
−
x
x
x
3
3
2
0
0
0
6
x
3
x
4
≤
≤
≤
≤
≤
≤
−
2
20
42
30
x
1
x
x
2
3
它是一个典型的线性规划问题,我们可以利用 Matlab 优化工具箱内的 linprog 进行求解。
在命令窗口(见图 1-3),输入 doc linprog,可得图 1-1(该图为帮助窗口)。
图 1-1
这是系统自带的帮助文件,里面详尽地介绍了该函数的使用,将滚动条往下拉,可以看出,
上面的例子就是该函数的使用例子。
为方便大家学习入门,我们在后面章节给出该函数的完整中文翻译,不熟悉的话可以参考。
求解步骤:
建立相应的 M 文件
在 M 文件窗口(见图 1-2)中,输入如图 1-2 所示的代码,并保存为 OptExp01.m
-3-
Matlab 优化工具箱使用说明
图 1-2
运行 M 文件
在命令窗口中,输入 OptExp01,产生出我们所需的结果。如图 1-3 所示,该问题得到了最优处
理(Optimization terminated 以及 exitflag=1),最优解为
x
1
=
,0
x
2
=
,15
x
3
=
3
,最优值为
-78。
图 1-3
-4-
Matlab 优化工具箱使用说明
2.优化工具箱简介
2.1.优化工具箱概述
Matlab 的优化工具箱(Optimization Toolbox)被放在 Matlab 的 toolbox 目录下的 optim
子目录中,包含着若干个求解最优化问题的程序。最新版 Matlab7.0 中的优化工具箱版本为
3.0 版本,随着版本的不断改进,求解最优化问题的功能也不断增强。
该版本优化工具箱可以求解线性规划、非线性规划、二次规划和无约束最优化,也可以
用于一些非线性和线性方程组的求解以及代数方程求根,并对以前版本的软肋(不能求解离
散优化模型,如整数规划、混合整数规划)进行了改进,给出了能求解变量全为 0-1 整数规
划的 bintprog 函数。期待版本的不断升级,可以象 lingo 软件般求解离散优化模型。
我们将通过系统自带的帮助文件,对该工具箱进行比较全面的介绍。
为说明方便,我们约定以后采用路径形式表示的 Help 来代指帮助窗口,用 helpOpt 代
替 Help\Contents\Optimization Toolbox。
由路径 Help\Contents\Optimization Toolbox\Tutorial\introduction\Problems Covered by the
Toolbox,按约定,也可写成:helpOpt\Tutorial\introduction\Problems Covered by the Toolbox
可得图 2-1。该帮助文档详尽罗列出各函数的最优化问题求解模型的说明。
为更加清晰的表示工具箱的功能,我们罗列出如下常用的最优化问题求解程序的说明。
图 2-1
-5-
Matlab 优化工具箱使用说明
表 2-1 常用的最优化问题求解程序
通过上面的帮助文档,结合实际建立的模型,可以找到相应的函数进行求解。
注:也许是新版的原因,在帮助文档中没有出现新函数 bintprog 的模型功能说明,我们可以
在 helpOpt\Functions -- Categorical List\minimization\bintprog 找到,如图所示。
-6-
Matlab 优化工具箱使用说明
通过 help 窗口,可以看出 bintprog 能够求解变量全为 0-1 变量的整数规划问题。
图 2-2
2.2.优化工具箱函数
优化工具箱 V3.0 一共提供了六类函数总共 28 个函数和一个运算符“\”,其中最小化函
数 10 个、方程求解 2 个、最小二乘 4 个、实用函数 4 个、大型、中型方法的演示函数各 3
个、5 个。其中 bintprog、fzmult、gangstr 是新增加的函数。可用于求解模型的函数共有 16
个,加上运算符“\”,可求解 17 种类型的优化问题。详见下面的六个表。
系统帮助:helpOpt\Functions – Categorical List(函数分类表)\minimization,可得图 2-3.
图 2-3
-7-
Matlab 优化工具箱使用说明
表 2-2 最小化函数表
描 述
0-1 整数规划
多目标达到问题
有边界的标量非线性最小化
有约束的非线性最小化
最大最小化
无约束非线性最小化
半无限问题
线性课题
二次课题
表 2-3 方程求解函数表
描 述
线性方程求解
非线性方程求解
标量非线性方程求解
表 2-4 最小二乘函数表
描 述
线性最小二乘
有约束线性最小二乘
非线性曲线拟合
非线性最小二乘
非负线性最小二乘
表 2-5 实用函数表
描 述
设置参数
获取参数
函 数
Bintprog
fgoalattain
fminbnd
fmincon
fminimax
fminsearch,
fminunc
fseminf
linprog
quadprog
函 数
\
fsolve
fzero
函 数
\
lsqlin
lsqcurvefit
lsqnonlin
lsqnonneg
函 数
Fzmult
Gangstr
optimset
optimget
函 数
circustent
molecule
optdeblur
函 数
bandemo
dfildemo
goaldemo
表 2-6 大型方法的演示函数表
描 述
马戏团帐篷问题—二次课题
用无约束非线性最小化进行分子组成求解
用有边界线性最小二乘法进行图形处理
表 2-7 中型方法的演示函数表
描 述
香蕉函数的最小化
过滤器设计的有限精度
目标达到举例
-8-