编辑推荐
适读人群 :本书可供最优化领域和科学计算方向的研究人员参考,也可作为高校该类课程的高年级本科生和研究生教材,还可供读者作为查询最优化数学问题求解方法的手册使用。 案例翔实,MATLAB*优化计算的经典之作。 提供MATLAB教学视频免费下载。
内容简介
本书首先介绍MATLAB的基本使用方法和程序设计基础,然后将MATLAB与*优化计算相结合,基于*优化理论与方法,讲解如何使用MATLAB求解*优化领域的实际问题。这些问题涵盖*优化理论与方法中的线性规划问题、整数规划问题、非线性规划问题、二次规划问题、多目标规划问题、图与网络优化问题,以及现代智能优化问题。本书内容循序渐进、由浅入深,并结合大量实例帮助读者理解和掌握*优化问题的建模方法与求解技巧。
作者简介
李明,中国科技大学自动化专业博士,广东工业大学副教授;《运筹学学报》特约编辑。精通MATLAB、*优化计算、C/C++。主持的科研项目曾获科技部三等奖1项,省级优秀项目1项。具备丰富的实践经验和写作经验,编写的图书通俗易懂,指导性强。
目录
目 录
第1章 MATLAB语言基础 1
1.1 MATLAB简介 1
1.1.1 MATLAB的产生与发展 1
1.1.2 MATLAB语言的优势 1
1.2 MATLAB入门 2
1.2.1 MATLAB工作环境 2
1.2.2 MATLAB中的数据类型 8
1.2.3 MATLAB语言中的常量与变量 11
1.2.4 MATLAB中的矩阵 13
1.2.5 符号运算 20
1.2.6 关系与逻辑运算 22
1.3 MATLAB中的矩阵运算 22
1.3.1 矩阵的代数运算 22
1.3.2 矩阵的关系与逻辑运算 25
1.3.3 矩阵分析 25
1.4 MATLAB中的图形功能 28
1.4.1 二维图形 29
1.4.2 三维图形 33
1.5 MATLAB工具箱的使用 35
1.5.1 MATLAB工具箱的特点 35
1.5.2 MATLAB工具箱的使用方法 36
1.6 本章小结 37
第2章 MATLAB程序设计 38
2.1 MATLAB程序设计方法 38
2.1.1 MATLAB中的控制结构 38
2.1.2 MATLAB中的M脚本文件和M函数文件 46
2.1.3 MATLAB程序的调试 53
2.2 MATLAB扩展编程 55
2.2.1 调用MATLAB引擎 56
2.2.2 调用动态链接库 65
2.3 本章小结 73
第3章 最优化计算问题概论 74
3.1 引言 74
3.1.1 最优化问题的提出 74
3.1.2 最优化理论和方法的产生与发展 75
3.2 最优化问题的典型实例 76
3.2.1 资源利用问题 76
3.2.2 分派问题 77
3.2.3 投资决策问题 79
3.2.4 多目标规划问题 80
3.3 最优化问题的数学描述 81
3.3.1 最优化问题三要素 81
3.3.2 最优化问题分类 82
3.4 最优化问题的解决方案 83
3.5 本章小结 84
第4章 线性规划 85
4.1 引言 85
4.2 线性规划问题的一般提法 85
4.3 线性规划问题的标准型 87
4.3.1 线性规划问题的一般标准型 87
4.3.2 线性规划问题的矩阵标准型 87
4.3.3 线性规划问题的向量标准型 88
4.3.4 非标准型的标准化 88
4.4 线性规划问题中解的概念 89
4.4.1 基本解 90
4.4.2 可行解、可行域 91
4.4.3 基本可行解 91
4.4.4 最优解 91
4.4.5 实例 91
4.5 线性规划问题的求解 92
4.5.1 图形解法 93
4.5.2 单纯形法 94
4.5.3 人工变量单纯形法 102
4.6 线性规划问题的MATLAB求解方法 107
4.6.1 线性规划问题的MATLAB标准型 107
4.6.2 线性规划问题求解的MATLAB函数调用 108
4.7 线性规划实例 114
4.7.1 生产计划问题 115
4.7.2 连续投资问题 117
4.7.3 配料问题 119
4.7.4 运输问题 120
4.7.5 绝对值问题 122
4.8 本章小结 124
习题 124
第5章 整数规划 127
5.1 引言 127
5.2 整数规划的数学模型 127
5.2.1 典型的整数规划问题 127
5.2.2 整数规划问题的数学模型 131
5.3 整数规划的求解 131
5.3.1 理论基础 131
5.3.2 分枝定界法 132
5.3.3 隐枚举法 136
5.3.4 匈牙利算法 141
5.4 整数规划问题的MATLAB求解方法 145
5.4.1 用MATLAB求解一般混合整数规划问题 145
5.4.2 用MATLAB求解0-1规划问题 150
5.4.3 已给出实例的MATLAB求解 153
5.5 整数规划的应用实例 157
5.5.1 计划排班问题 157
5.5.2 合理下料问题 159
5.5.3 生产计划问题 162
5.5.4 背包问题 166
5.6 本章小结 168
习题 168
第6章 非线性规划 171
6.1 引言 171
6.2 非线性规划问题的数学模型 171
6.2.1 典型的非线性规划问题 171
6.2.2 非线性规划问题的数学模型 173
6.3 理论基础 173
6.3.1 全局最优解和局部最优解 174
6.3.2 凸函数和凸规划 174
6.3.3 无约束非线性规划问题的极值条件 177
6.3.4 多维有约束非线性规划问题的极值条件 179
6.4 非线性规划问题的求解 183
6.5 一维搜索 185
6.5.1 一维搜索的基本思想 185
6.5.2 试探法――黄金分割法 188
6.5.3 插值法――牛顿法 190
6.5.4 抛物线法 192
6.5.5 一维搜索的MATLAB求解 192
6.6 多维无约束非线性优化 196
6.6.1 最速下降法 196
6.6.2 牛顿法 198
6.6.3 共轭方向法 201
6.6.4 Powell算法 210
6.6.5 多维无约束优化的MATLAB求解函数fminunc 213
6.6.6 多维无约束优化的MATLAB求解函数fminsearch 223
6.7 多维约束非线性优化 226
6.7.1 拉格朗日乘子法 226
6.7.2 序列无约束极小化法 228
6.7.3 近似规划法 234
6.7.4 多维约束优化的MATLAB求解 236
6.8 综合实例 252
6.8.1 商品最优存储方法 253
6.8.2 产销量的最佳安排 256
6.9 本章小结 258
习题 258
第7章 二次规划 262
7.1 二次规划问题的数学模型 262
7.2 等式约束的二次规划问题 262
7.2.1 直接消去法 263
7.2.2 拉格朗日乘子法 264
7.3 有效集方法 266
7.4 Wolfe算法 270
7.5 Lemke算法 273
7.6 二次规划问题的MATLAB求解 277
7.6.1 输入参数和输出参数 278
7.6.2 控制参数设置 278
7.6.3 命令详解 279
7.6.4 综合实例 281
7.7 本章小结 284
习题 284
第8章 多目标规划 286
8.1 多目标规划问题的数学模型 286
8.2 多目标规划问题的解集和象集 288
8.2.1 多目标规划的解集 288
8.2.2 多目标规划的象集 291
8.3 处理多目标规划的方法 292
8.3.1 约束法 292
8.3.2 评价函数法 293
8.3.3 功效系数法 297
8.3.4 多目标规划的MATLAB求解 300
8.4 线性目标规划 306
8.4.1 线性目标规划的数学模型 309
8.4.2 线性目标规划的求解方法 316
8.4.3 线性目标规划的MATLAB求解 326
8.5 综合实例 333
8.6 本章小结 337
习题 338
第9章 图与网络优化 340
9.1 引言 340
9.2 基本概念 341
9.2.1 图的基本概念 341
9.2.2 树的基本概念 348
9.3 最短路径问题 353
9.3.1 两个指定顶点之间的最短路径 353
9.3.2 任意两个顶点之间的最短路径 356
9.3.3 最短路径问题的MATLAB求解 359
9.4 网络最大流问题 363
9.4.1 基本概念与基本定理 363
9.4.2 最大流问题的求解 366
9.5 最小费用最大流 373
9.5.1 基本概念 373
9.5.2 最小费用最大流问题的求解 374
9.5.3 最小费用最大流的MATLAB求解 375
9.6 本章小结 379
习题 380
第10章 现代智能优化算法简介 382
10.1 引言 382
10.2 遗传算法 382
10.2.1 概述 383
10.2.2 基本要素 383
10.2.3 遗传算子 385
10.2.4 遗传算法的基本步骤 387
10.2.5 遗传算法的MATLAB实现 391
10.3 模拟退火算法 397
10.3.1 模拟退火算法的基本思想 397
10.3.2 模拟退火的算法步骤 397
10.3.3 模拟退火算法的参数控制问题 400
10.3.4 模拟退火的MATLAB工具箱求解 405
10.4 禁忌搜索 409
10.4.1 局部邻域搜索简介 409
10.4.2 禁忌搜索的基本原理 410
10.4.3 禁忌搜索的关键技术 411
10.4.4 禁忌搜索的MATLAB实现 414
10.5 本章小结 419
第11章 综合案例 420
11.1 线性规划――农业改造问题 420
11.1.1 农业改造问题的建模 420
11.1.2 农业改造问题的求解 423
11.2 整数规划――组件配套问题 426
11.2.1 组件配套问题的建模 426
11.2.2 组件配套问题的求解 427
11.3 非线性规划――广告问题 428
11.3.1 广告问题的建模 429
11.3.2 广告问题的求解 432
11.4 多目标规划――投资问题 433
11.4.1 投资问题的建模 434
11.4.2 投资问题的求解 435
11.5 图与网络优化――通信网问题 437
11.5.1 通信网问题的建模 438
11.5.2 通信网问题的求解 438
前言/序言
前 言
人们在处理生产过程、金融投资、工程应用、机械设计、经营管理等实际问题时,都希望以最优的方式求得人力、物力和财力的合理运用。如何运用数学和工程的方法获取这个最佳处理结果的问题称为最优化问题。而针对最优化问题,如何确定一系列可行方案,然后从可行方案中通过分析、比较和判断使所得结果最佳的方法称为最优化方法。
最优化理论和方法自古就有,最典型的实例就是黄金分割,最优化方法成为科学方法则在17世纪以后。牛顿和莱布尼茨所创建的微积分理论为最优化问题的解决提供了理论基础,而后产生的变分法和简单的库存模型等精确的解析方法可以称为古典最优化方法。
古典最优化方法虽然出现得比较早,但是由于计算手段的限制导致这些方法在解决实际问题时遇到了瓶颈。到了20世纪40年代末期,第二次世界大战前后,由于军事上的需要产生了运筹学,此后,因为计算机的兴起和日益普及,使得原来根本制约优化设计方法的大运算量问题得以解决,为数值优化方法的发展提供了有效的手段,于是最优化技术突飞猛进,得到了广泛的应用并创造了巨大的经济效益和社会价值。这个技术热点也促使了近代最优化理论的建立,它主要以数学规划法为基础,研究各种系统的优化途径及方案,为决策者提供科学决策的依据。
与此同时,随着计算机应用技术的发展,各种可用于最优化方法设计与实现的软件层出不穷,丰富了科研技术人员的开发研究手段,提高了解决实际问题的效率,MATLAB就是其中的一种。MATLAB是美国MathWorks公司出品的商业数学软件,与Mathematica、Maple并称为三大数学软件。MATLAB以其强大的科学计算功能和覆盖面广、专业性强的工具箱发展成为适合多学科、跨平台的大型实用科学计算软件,也为最优化计算问题的解决提供了有力的工具。
在笔者的教学过程中,发现许多非数学专业的学生在学习“数学规划”、“运筹学”等与最优化理论和方法相关的课程时,往往觉得这些数学理论晦涩难懂,且由于拘泥于某些细节,很难形成对最优化理论和方法的全面了解,阻碍了其分析和解决实际问题的能力。因而笔者一直想撰写这么一本书,让读者觉得最优化方法是有趣而且实用的,并且能够运用科学计算的方法,跳出艰深数学理论的囹圄,利用MATLAB这个强大的工具实现并验证自己的想法,加深对最优化理论的理解。故本书以工程应用为基础,将最优化理论和方法与MATLAB相结合,帮助读者从理论和实践两个方面提高解决最优化问题的能力,让即便是数学基础不够深厚的读者也同样能够利用MATLAB解决较难的最优化数学问题,为读者能够快速进入这个领域、设计高效可行的最优化方案奠定扎实的基础。
本书的内容以最优化理论为主线,以最优化方法与实际应用相结合的实例为基础,并结合笔者多年的教学实践经验,介绍各种最优化理论和方法在MATLAB中的实现方法。本书的内容涵盖了最优化理论与方法中的杰出成果,例如线性规划、整数规划、非线性规划、二次规划、多目标规划、图与网络优化等,还兼顾了新近发展的近代智能优化方法,例如遗传算法、模拟退火、禁忌搜索等,使读者有机会结合MATLAB去接触解决较为复杂最优化问题的启发式搜索方法,通过探索提高读者的自我学习能力。
本书由浅入深、循序渐进地让读者从整体上把握最优化计算的实质,进而可以将实际的问题抽象成易于理解的数学模型,同时转换成MATLAB语言进行求解。书中的实例是笔者多年教学中理解和思想的凝练,内容经过精心的考量和裁剪,相信会受到读者的认可。
本书分为11章,第1章主要讲解MATLAB的应用基础,包括MATLAB的基本使用方法、MATLAB的数据类型和各种运算、MATLAB的图形功能及工具箱的使用;第2章介绍MATLAB的控制流程、M文件等基础编程技术及MATLAB的接口知识,并结合VC++讲解如何将MATLAB和其他高级编程语言相结合,高效地解决实际应用开发问题;第3章针对本书探讨的核心问题——最优化计算,首先介绍最优化问题的概念、最优化理论和方法的产生与发展,然后归纳总结出最优化问题的建模方法;第4章至第10章将MATLAB和最优化理论相结合,分别介绍如何使用MATLAB解决线性规划、整数规划、非线性规划、二次规划、多目标规划、图与网络优化和智能优化等最优化领域的实际问题,分析和总结各种最优化问题的建模方法与求解算法,并给出MATLAB优化工具箱中相应函数的使用方法,通过大量的实例帮助读者理解最优化计算是如何应用于实际问题的。本书对各种最优化方法的讲解均注重专业知识和MATLAB实践应用的结合,都给出了基本的推导和结论,分析了各种最优化问题的理论求解方法和MATLAB求解方法,方便读者比照和理解。值得一提的是,笔者在数学理论的完整性和可读性之间作了大量权衡,使得广大读者可以各取所需,既满足了希望深入了解最优化理论的读者的需求,又兼顾了在复杂数学理论上有所困扰的读者在应用方面的需求。第11章给出各种最优化方法的综合实例及其MATLAB求解方法。
笔者在撰写本书的过程中,得到很多同事、同行和朋友的帮助,他们为本书的编写提供了许多宝贵的意见和建议,使得本书的思路和内容臻于完善,在此表示深深的谢意。本书还从使用者的角度出发,将笔者自身教学和科研中丰富的经验融入书中知识点的讲解,并将MATLAB工具箱与最优化实际问题相结合,使读者在学习理论知识的同时可以尝试设计各种最优化方案以解决各领域的实际问题,提高读者将知识转化为能力的水平。
本书在第1版的基础上,将MATLAB软件平台升级到了MATLAB R2014a版本。本书可供最优化领域的研究人员参考,也可作为高校该类课程高年级本科生和研究生的教材,还可作为其他科技工作者在科学计算等方面的参考书。
本书提供案例的源代码及MATLAB R2014a基础教学视频下载,读者可登录华信教育资源网(www.hxedu.com.cn),注册成会员后查找本书所在页面免费下载。
本书主要由李明编著,同时参加编写工作的还有张玉兰、高克臻、张云霞、许小荣、王东、王龙、张银芳、周新国、蔡娜、胡书敏、李爽、苏静、张秀梅、贾东永。
由于笔者水平所限,加之时间紧迫,书中疏漏、不当甚至谬误之处在所难免,在此恳请广大读者、同行和各界人士批评和指正。
编 著 者
2017年8月
详解MATLAB在最优化计算中的应用(第2版) 电子书 下载 mobi epub pdf txt