《精通MATLAB最优化计算》是来自在2009年4月1日电子工业出版社出版的书籍,作者是龚纯、王正林。本书可作为信息、数学、经济、金针营异必牛愿融、管理、运筹、统计、计算机以及有关理工科专业的本科生、研究生作为教材、实验或教学参考书,也可供相关工程技术与管理人员、数学建模爱好者参考。
优化的工具箱和自编函数实现双管齐下算法原理→流程→编程→举例一杆到底60余个程序,100余个实杆去应许满虽深师例一一精编精讲
精通MATLAB最优化计算的主要内容是应用MATLAB来解决最优化问题,通过将"最优化问题"、"MATLAB优化工具箱"和"MATLAB编程"这三来自方面有机结合进行讲述,即一方面是使用工具箱来快速解决360百科最优化问题,另一方面是通过算法编程深入解决最优化问题。 本书侧重于最优化算法的MATLAB实现,同时精选了大量的最优化问题实例,通过实例的求解十明干欢笑推而学家必,生动地教会读者掌握MATLAB在最优化问题方面的应用。
通过本书,读者不仅能掌握使用MATLAB最优化工具箱来快速解决实际问题,而且能学会分析优化算法和采用MATLAB编程解决最优化问题,从而提高分析和解决问题的能力。
最优化理论和方法日益受到重视来自,已经渗透到生产、管理、商业、军事、决策等各360百科个领域,而最优化模型与方法广泛应用于工业、农业、交通运输、商业、国防、建筑、通信、政府机关等各个部门及各个领域。
伴随烈天鸡晚价土注局它着计算机技术的高速发展,最优化理论与方法的迅速进步,为解决实际最优化问题的软件也在飞速发展。其中,MATLAB软件已成为在最优化领域应用最广的软婷千压训被夫色件之一。
有了MATLAB这个强大的计算平台,既可以利用MATLAB优化句破负式资担间定工具箱(Opti级持mization Toolbox)中的函数,又可以通过对算法编程实现相应的最优化计算。
本书由浅入利美律找须深全面系统地讲述MATLAB在最优化领域的应用。
本书导读图
使用指南
金比局春属皇 为了帮助读者在遇到具体应用问题时,能够更好更快地从本书中查找到所需内容,我们特地制作了本书设来抓早兴年例球点受模的使用指南。这个指南的组织逻辑色是以解决实际问题的一般思考步骤为顺序的,即在遇到具体应用问题时,大致都需要经历以下3个步骤。
报难 明确应用领域
选事优正军令知择优化方法
应用MATLAB
在每一步骤中又涉及若干具体问题,可进一步向下细分。从这个指南图中也可以清楚地看出本书的知识脉络,从台然弦而形成一幅系统化、宗长天多刑套尔西绝白综合化的整体知识体系结构图。
客成延夜律副鱼办映 给读者的建议
读者在赵助们学习本书时可根据自己的基础灵活安排内容,但应注意把握循序渐进的原则,稳扎稳打,逐步掌握。针对不同基础的读者,我们的建议如下图:
主要特色
本书内容以算法程序为主、实例为辅,通过一个个的算法分析、MATLAB编程、算法应用实例,一步步带领读者进入MA溶欢祖门们回片洋TLAB的强大世界,挖掘MATLAB的丰富宝库。
本础欢文书主要的特点可以概括为以下几点。
1.内容由浅入深、层次性强
本书采用4篇结构,从MATLAB入套别假商推却粉局门篇入手,然后通过优化计算基础篇和高级篇,循序渐进讲述最优化计算,最后在综合实战篇中讲述大量的实例收尾。本书的层次结构简洁明了,非常适合不同层抓讨秋事图功路林次的读者选择性地学习,提高了学习效率。
另一方面,讲述应用MATLAB求解最优化问题时,也是从易到难依次讲述了GUI优化工具、工具箱函数、自编函数这三种实现方式。
2.紧密围绕MATLAB,系统性强
MATLAB软件的出现,为解决实际中各种最优化问题提供了更新、更丰富的手段、技术和方法。一方面从快捷便利的最优化工具箱GUI工具,以及工具箱函数入手;另一方面从采用算法编程的方式入手。
简言之,利用MATLAB求解最优化问题,既可以用快捷的GUI工具,又可以用功能强大的工具箱函数,还可以通过算法编程来实现,方式多样,系统性强。
3.算法程序及实例丰富,实用性强
本书打破了最优化类书算法多、程序少的弊病,对复杂的算法推导一带而过,重在程序、重在MATLAB实现!
精心挑选了最具代表性和实用性的60余个优化算法,一一编程实现,并提供了全部源代码,非常便于学习和参考。
同时精选100多个实例,悉数进行全面的分析和求解,并在综合实战篇集中讲述。
4.算法编程实现,指导性强
本书的算法全部采用MATLAB编程实现,源程序注释丰富,而且通过实例验证了正确性,读者通过编程练习,不但可以更深入地理解优化算法理论,还能够熟练掌握MATLAB编程。
5.语言简洁精炼,可读性强
本书的算法尽量用直观的方法、简洁通俗的语言来说明其基本思想,并辅以丰富的实例与分析来说明求解的步骤,从而避免复杂的数学推导。
在算法编程中,对关键的代码进行点睛式的注释,让读者从程序中快速掌握最优化算法及其实现。
作者致谢
感谢父母和朋友们的支持与鼓励,使得本书的创作过程得以坚持下去;感谢朱沭红老师、王鹤扬编辑的大力支持和辛勤劳动!
由于作者水平和经验有限,书中错漏之处在所难免,还望得到专家、读者和行内人士的批评指正。
编著者
2009年2月18日于清华园
目录1 MATLAB入门篇
第 1章 MATLAB概述 2
1.1 MATLAB的产生与发展 2
1.2 MATLAB的优势与特点 2
1.3 MATLAB系统的构成 4
1.4 MATLAB桌面操作环境 5
1.4.1 MATLAB启动和退出 5
1.4.2 MATLAB主菜单及功能 7
1.4.3 MATLAB命令窗口 9
1.4.4 MATLAB工作空间 11
1.4.5 M文件编辑/调试器 14
1.4.6 图形窗口 15
1.4.7 MATLAB文件管理 16
1.4.8 MATLAB帮助使用 17
1.5 MATLAB的工具箱 17
1.6 小结 18
第 2章 MATLAB计算基础 19
2.1 MATLAB数值类型 19
2.2 关系运算和逻辑运算 21
2.3 矩阵及其运算 22
2.3.1 矩阵的创建 22
2.3.2 矩阵的运算 23
2.4 复数及其运算 25
2.4.1 复数的表示 25
2.4.2 复数的绘图 27
2.4.3 复数的操作函数 28
2.5 符号运算 28
2.5.1 符号运算概述 28
2.5.2 常用的符号运算 30
2.6 小结 32
第 3章 MATLAB绘图基础 33
3.1 MATLAB绘图的基本步骤 33
3.2 在工作空间直接绘图 34
3.3 利用绘图函数绘图 35
3.3.1 二维图形 35
3.3.2 三维图形 36
3.4 图形的修饰 40
3.5 小结 42
第 4章 MATLAB程序设计基础 43
4.1 MATLAB编程概述 43
4.2 MATLAB程序设计原则 44
4.3 M文件 45
4.4 MATLAB程序流程控制 47
4.5 MATLAB中的函数及调用 50
4.5.1 函数类型 50
4.5.2 函数参数传递 53
4.6 函数句柄 57
4.7 MATLAB程序调试 59
4.7.1 常见程序错误 59
4.7.2 调试方法 62
4.7.3 调试工具 62
4.7.4 M文件分析工具 65
4.8 MATLAB程序设计技巧 69
4.8.1 嵌套计算 69
4.8.2 循环计算 70
4.8.3 使用例外处理机制 71
4.8.4 使用全局变量 72
4.8.5 通过varargin传递参数 74
4.9 小结 75
目录2 优化计算基础篇
第 5章 MATLAB优化工具箱 78
5.1 工具箱概述 78
5.1.1 工具箱的功能 78
5.1.2 工具箱的新特色 78
5.1.3 工具箱的结构 79
5.2 工具箱函数 79
5.3 GUI优化工具 82
5.3.1 GUI优化工具的启动 82
5.3.2 GUI优化工具的界面 83
5.3.3 GUI优化工具使用步骤 84
5.3.4 GUI优化工具应用实例 85
5.4 小结 92
第 6章 无约束一维极值问题 93
6.1 进退法 93
6.2 黄金分割法 96
6.3 斐波那契法 99
6.4 牛顿法 102
6.4.1 基本牛顿法 102
6.4.2 全局牛顿法 104
6.5 割线法 107
6.6 抛物线法 109
6.7 三次插值法 112
6.8 可接受搜索法 114
6.8.1 Goldstein法 114
6.8.2 Wolfe-Powell法 117
6.9 MATLAB工具箱
1.6 应用实例 120
6.9.1 应用fminbnd函数 120
6.9.2 应用fminsearch函数 124
6.9.3 应用改进的fminbnd函数 125
6.9.4 应用maple函数 127
6.10 小结 129
第 7章 无约束多维极值问题 130
7.1 直接法 130
7.1.1 模式搜索法 130
7.1.2 Rosenbrock法 134
7.1.3 单纯形搜索法 137
7.1.4 Powell法 141
7.2 使用导数计算的间接法 144
7.2.1 最速下降法 145
7.2.2 共轭梯度法 146
7.2.3 牛顿法 149
7.2.4 修正牛顿法 150
7.2.5 拟牛顿法 152
7.2.6 信赖域法 158
7.2.7 显式最速下降法 160
7.3 MATLAB工具箱
7.3 应用实例 162
7.3.1 应用fminsearch函数 162
7.3.2 应用fminunc函数 169
7.3.3 应用fminimax函数 171
7.4 小结 174
第 8章 约束优化问题 175
8.1 Rosen梯度投影法 175
8.2 罚函数法 179
8.2.1 外点罚函数法 179
8.2.2 内点罚函数法 186
8.2.3 混合罚函数法 189
8.2.4 乘子法 194
8.3 坐标轮换法 196
8.4 复合形法 200
8.5 MATLAB工具箱
8.5 应用实例 204
8.6 小结 206
第 9章 非线性最小二乘优化问题 207
9.1 G-N法 207
9.2 修正G-N法 210
9.3 L-M法 212
9.4 MATLAB工具箱
9.4 应用实例 215
9.5 小结 217
第 10章 线性规划 218
10.1 单纯形法 218
10.2 修正单纯形法 225
10.3 大M法 229
10.4 变量有界单纯形法 231
10.5 MATLAB工具箱
10.5 应用实例 233
10.6 小结 236
第 11章 整数规划 237
11.1 割平面法 237
11.2 分支定界法 243
11.3 0-1规划 249
11.4 MATLAB工具箱
11.4 应用实例 252
11.5 小结 253
第 12章 二次规划 254
12.1 拉格朗日法 254
12.2 起作用集算法 256
12.3 路径跟踪法 260
12.4 MATLAB工具箱
11.4 应用实例 263
12.5 小结 267
目录3 优化计算高级篇
第 13章 粒子群优化算法 270
13.1 粒子群算法概述 270
13.2 基本粒子群算法 271
13.3 带压缩因子的粒子群算法 275
13.4 权重改进的粒子群算法 279
13.4.1 线性递减权重法 279
13.4.2 自适应权重法 283
13.4.3 随机权重法 286
13.5 变学习因子的粒子
11.4 群算法 288
13.5.1 同步变化的学习因子 288
13.5.2 异步变化的学习因子 291
13.6 二阶粒子群算法 294
13.7 二阶振荡粒子群算法 296
13.8 混沌粒子群算法 299
13.9 混合粒子群算法 303
13.9.1 基于自然选择的算法 303
13.9.2 基于杂交的算法 306
13.9.3 基于模拟退火的算法 309
13.10 小结 312
第 14章 遗传算法 313
14.1 遗传算法概述 313
14.2 基本遗传算法 314
14.3 顺序选择遗传算法 318
14.4 适值函数标定的遗传算法 321
14.5 大变异遗传算法 325
14.6 自适应遗传算法 329
14.7 双切点交叉遗传算法 333
14.8 多变异位自适应遗传算法 337
14.9 MATLAB工具箱
11.4 应用实例 341
14.10 小结 343
目录4 综合实战篇
第 15章 工程最优化问题实例 346
15.1 线性规划实例 346
15.1.1 生产任务分配问题 346
15.1.2 运输问题 349
15.1.3 生产运输问题 353
15.1.4 资源利用问题 359
15.2 整数规划实例 360
15.2.1 下料问题 360
15.2.2 配套问题 362
15.2.3 有限选址问题 364
15.2.4 生产组织与计划问题 365
15.3 无约束优化实例 367
15.3.1 选址问题 367
15.3.2 销售利润问题 368
15.3.3 库存问题 369
15.4 约束优化实例 371
15.4.1 最大体积问题 371
15.4.2 资源分配问题 372
15.4.3 和三角形有关的极值问题 373
15.4.4 点到曲线的距离 375
15.4.5 曲线到曲线的距离 379
15.5 小结 380
第 16章 经济金融最优化问题实例 381
16.1 最大利润问题 381
16.1.1 不考虑销售影响 381
16.1.2 考虑销售影响 382
16.2 最优消费问题 384
16.3 最优投资分配问题 385
16.4 最优资金使用问题 387
16.5 最优产量问题 388
16.5.1 古诺竞争模型 388
16.5.2 斯塔克尔伯格竞争模型 389
16.6 最优投资组合问题 391
16.6.1 标准均值-方差组合 391
16.6.2 有上界均值-方差组合 392
16.6.3 有交易成本均值-方差
13.9.2 组合 393
16.6.4 自融资均值-方差组合 395
16.7 小结 396
附录 A MATLAB优化工具箱
附录 A 函数注释 397
附录 B 本书所编写的优化算法
附录 A 程序索引 399
参考文献 402
实 例 目 录
第2章 MATLAB计算基础
例2-1 元胞数组创建与显示实例。 20
例2-2 矩阵创建实例。 22
例2-3 特殊矩阵生成函数使用实例。 23
例2-4 矩阵基本运算实例。 24
例2-5 矩阵函数运算实例。 24
例2-6 矩阵分解运算函数使用实例。 25
例2-7 复数构造实例。 26
例2-8 复数矩阵构造实例。 26
例2-9 复数函数绘图实例。 27
例2-10 符号表达式创建实例。 29
例2-11 极限和极值的符号运算实例。 31
例2-12 微积分的符号运算实例。 31
例2-13 常微分方程符号运算实例。 32
第3章 MATLAB绘图基础
例3-1 工作空间直接做图法使用实例。 34
例3-2 二维图形绘制实例。 35
例3-3 三维曲线绘制函数使用实例。 38
例3-4 三维网格曲面图绘制应用实例。 38
例3-5 阴影曲面绘制函数surf使用实例。 39
例3-6 绘图命令使用实例。 41
第4章 MATLAB程序设计基础
例4-1 M文件创建实例。 46
例4-2 return语句使用实例。 49
例4-3 匿名函数创建实例。 51
例4-4 显示函数输入和输出参数的数目实例。 54
例4-5 可变数目的参数传递实例。 55
例4-6 函数内部的输入参数修改实例。 56
例4-7 函数参数传递实例。 56
例4-8 全局变量使用实例。 57
例4-9 函数句柄创建和调用实例。 58
例4-10 处理函数句柄的函数使用实例。 59
例4-11 嵌套计算与直接求值的比较实例。 69
例4-12 嵌套计算与非嵌套计算的比较实例。 70
例4-13 例外处理机制使用实例。 71
例4-14 nargin函数应用实例。 72
例4-15 全局变量使用实例。 73
例4-16 通过varargin传递参数的实例。 74
第5章 MATLAB优化工具箱
例5-1 fminunc求解器应用实例。 85
例5-2 fminsearch求解器应用实例。 86
例5-3 fmincon求解器应用实例。 88
例5-4 lsqnonlin求解器应用实例。 89
例5-5 linprog求解器应用实例。 90
例5-6 ga求解器应用实例。 91
第6章 无约束一维极值问题
例6-1 进退法求解极值区间实例。 95
例6-2 黄金分割法求解极值实例。 98
例6-3 斐波那契法求解极值实例。 101
例6-4 基本牛顿法求解极值实例。 104
例6-5 全局牛顿法求解极值实例。 106
例6-6 割线法求解极值实例。 109
例6-7 抛物线法求解极值实例。 111
例6-8 三次插值法求解极值实例。 114
例6-9 Goldstein法求解极值实例。 117
例6-10 Wolfe-Powell法求解极值实例。 119
例6-11 fminbnd函数求解极值实例1。 121
例6-12 fminbnd函数求解极值实例2。 122
例6-13 fminbnd函数求解极值实例3。 123
例6-14 fminbnd函数求解极值实例4。 123
例6-15 fminbnd函数求解极值实例5。 124
例6-16 fminsearch函数求解极值实例。 125
例6-17 改进的fminbnd函数求解极值实例1。 126
例6-18 改进的fminbnd函数求解极值实例2。 126
例6-19 改进的fminbnd函数求解极值实例3。 126
例6-20 改进的fminbnd函数求解极值实例4。 127
例6-21 maple函数求极小值实例1。 128
例6-22 maple函数求极小值实例2。 128
例6-23 maple函数求极小值实例3。 129
第7章 无约束多维极值问题
例7-1 模式搜索法求解无约束多维极值问题实例。 133
例7-2 Rosenbrock法求解无约束多维极值问题实例。 136
例7-3 单纯形搜索法求解无约束多维极值问题实例。 140
例7-4 Powell法求解无约束多维极值问题实例。 144
例7-5 最速下降法求解无约束多维极值问题实例。 146
例7-6 共轭梯度法求解无约束多维极值问题实例。 148
例7-7 牛顿法求解无约束多维极值问题实例。 150
例7-8 修正牛顿法求解无约束多维极值问题实例。 152
例7-9 DFP法求解无约束多维极值问题实例。 155
例7-10 BFGS法求解无约束多维极值问题实例。 157
例7-11 信赖域法求解无约束多维极值问题实例。 160
例7-12 显式最速下降法求正定二次函数极值的应用实例。 162
例7-13 fminsearch函数求解无约束多维极值问题实例1。 163
例7-14 fminsearch函数求解无约束多维极值问题实例2。 164
例7-15 fminsearch函数求解无约束多维极值问题实例3。 168
例7-16 fminunc函数求解无约束多维极值问题实例。 169
例7-17 fminimax函数求解无约束多维极值问题实例。 174
第8章 约束优化问题
例8-1 Rosen梯度投影法求解约束优化问题实例。 178
例8-2 外点罚函数法应用实例。 181
例8-3 通用罚函数法应用实例。 183
例8-4 外点混合罚函数法应用实例。 186
例8-5 内点罚函数法求解约束优化问题实例。 188
例8-6 混合罚函数法求解约束优化问题实例。 191
例8-7 加速混合罚函数法求解约束优化问题实例。 193
例8-8 乘子法求解约束优化问题实例。 195
例8-9 坐标轮换法求解约束优化问题实例。 199
例8-10 复合形法求解约束优化问题实例。 203
例8-11 fmincon函数求解约束优化问题实例。 205
第9章 非线性最小二乘优化问题
例9-1 G-N法求解非线性最小二乘优化问题实例。 209
例9-2 修正G-N法求解非线性最小二乘优化问题实例。 211
例9-3 L-M法求解非线性最小二乘优化问题实例。 214
例9-4 lsqnonlin求解非线性最小二乘优化问题实例。 216
第10章 线性规划
例10-1 单纯形法求解线性规划实例1。 221
例10-2 单纯形法求解线性规划实例2。 222
例10-3 修正单纯形法求解线性规划实例。 228
例10-4 大M法求解线性规划实例。 230
例10-5 变量有界单纯形法求解线性规划实例。 231
例10-6 linprog函数求解线性规划实例1。 234
例10-7 linprog函数求解线性规划实例2。 234
例10-8 linprog函数求解线性规划实例3。 235
例10-9 linprog函数求解线性规划实例4。 235
第11章 整数规划
例11-1 割平面法求解整数规划实例。 243
例11-2 分支定界法求解整数规划实例1。 248
例11-3 分支定界法求解整数规划实例2。 249
例11-4 0-1规划应用实例。 251
例11-5 bintprog函数求解0-1规划实例。 252
第12章 二次规划
例12-1 拉格朗日法求解二次规划实例。 255
例12-2 起作用集法求解二次规划实例。 259
例12-3 路径跟踪法求解二次规划实例。 263
例12-4 quadprog函数求解二次规划实例1。 265
例12-5 quadprog函数求解二次规划实例2。 265
第13章 粒子群优化算法
例13-1 基本粒子群算法应用实例。 273
例13-2 带压缩因子的粒子群算法应用实例。 278
例13-3 线性递减权重的粒子群算法应用实例。 281
例13-4 自适应权重的粒子群算法应用实例。 285
例13-5 随机权重的粒子群算法应用实例。 288
例13-6 同步变化的学习因子粒子群算法应用实例。 290
例13-7 同步变化的学习因子粒子群算法应用实例。 293
例13-8 二阶粒子群算法应用实例。 296
例13-9 二阶振荡粒子群算法应用实例。 299
例13-10 混沌粒子群算法应用实例。 302
例13-11 基于自然选择的粒子群算法应用实例。 305
例13-12 基于杂交的粒子群算法应用实例。 309
例13-13 基于模拟退火的粒子群算法应用实例。 312
第14章 遗传算法
例14-1 基本遗传算法应用实例。 317
例14-2 顺序选择遗传算法应用实例。 321
例14-3 适值函数标定的遗传算法应用实例。 324
例14-4 大变异遗传算法应用实例。 329
例14-5 自适应遗传算法应用实例。 333
例14-6 双切点交叉遗传算法应用实例。 336
例14-7 多变异位自适应遗传算法应用实例。 340
例14-8 优化工具的ga求解器应用实例1。 341
例14-9 优化工具的ga求解器应用实例2。 342
第15章 工程最优化问题实例
例15-1 生产任务分配问题应用实例1。 346
例15-2 生产任务分配问题应用实例2。 347
例15-3 运输问题应用实例。 350
例15-4 生产运输问题应用实例1。 354
例15-5 生产运输问题应用实例2。 357
例15-6 资源利用问题应用实例。 359
例15-7 下料问题应用实例。 361
例15-8 配套问题应用实例。 362
例15-9 有限选址问题应用实例。 364
例15-10 生产组织与计划问题应用实例。 365
例15-11 选址问题应用实例。 367
例15-12 销售利润最大化问题应用实例。 368
例15-13 库存问题应用实例1。 370
例15-14 库存问题应用实例2。 370
例15-15 库存问题应用实例3。 371
例15-16 最大体积问题应用实例。 372
例15-17 资源分配问题应用实例。 372
例15-18 和三角形有关的极值问题应用实例1。 373
例15-19 和三角形有关的极值问题应用实例2。 374
例15-20 点到曲线距离问题应用实例1。 375
例15-21 点到曲线距离问题应用实例2。 376
例15-22 点到曲线距离问题应用实例3。 377
例15-23 曲线到曲线距离问题应用实例。 379
第16章 经济金融最优化问题实例
例16-1 未考虑销售影响的利润最大化问题实例。 382
例16-2 考虑销售影响的利润最大化问题实例。 383
例16-3 最优消费问题应用实例。 384
例16-4 最优投资分配问题应用实例。 385
例16-5 资金最优使用问题实例。 387
例16-6 古诺竞争模型应用实例。 389
例16-7 斯塔克尔伯格模型应用实例。 390
例16-8 标准均值-方差投资组合应用实例。 392
例16-9 有上界的均值-方差投资组合应用实例。 393
例16-10 有交易成本的均值-方差投资组合应用实例。 394
例16-11 自融资均值-方差投资组合应用实例。 395
龚纯,清华大学硕士毕业,擅长数值算法和数学建模 ,精通matlab编程,著有《精通MATLAB科学计算》,《MATLAB语言常用算法程序集》,《精通MATLAB最优化计算》等书籍 。