具体描述
产品特色
编辑推荐
(1) 资深作者编著,图书质量更有保证:一线资深工程师执笔,系统归纳和总结了智能算法的实战经验。
(2) 提供配套源码,便于读者动手实践:理论必须联系实践,本书提供源代码下载,方便读者学习使用。
(3) 内含丰富实例,利于读者二次开发:书中提供了十几个优化算法的典型实例,读者可以据此二次开发。
配套学习资源下载地址为清华大学出版社网站本书页面。系列畅销图书如下:
MATLAB 编程指南——计算、编程、仿真、算法及应用
MATLAB/Simulink系统仿真
MATLAB GUI程序设计
MATLAB智能算法
MATLAB数学建模
MATLAB优化算法
MATLAB信号处理
MATLAB图像处理
MATLAB优化算法
内容简介
本书是一本简明的MATLAB优化算法综合性参考书,以MATLAB R2016b软件版本为基础,根据常用优化算法编写,包含多种优化算法的MATLAB应用方法,是读者掌握MATLAB在优化算法中应用的有力工具。
全书分为四个部分共18章,包括MATLAB应用基础、常规优化算法、智能优化算法和综合应用。第一部分从MATLAB基础知识开始,详细介绍编程和程序设计、二维绘图、三维绘图、GUI应用等内容; 第二部分介绍MATLAB线性规划、非线性规划、无约束一维极值、无约束多维极值、约束优化方法、二次规划、多目标函数的优化方法等内容; 第三部分介绍免疫优化算法及其MATLAB实现、粒子群优化算法的MATLAB实现、遗传优化算法的MATLAB实现、小波变换的MATLAB实现、神经网络的MATLAB实现等内容; 第四部分主要介绍MATLAB在分形维数和经济金融*优化中的应用。在本书的*后,附录中还给出了MATLAB基本命令的介绍,便于读者查阅。
本书以MATLAB优化内容为主线,结合各种优化模型案例的讲解,各种MATLAB优化算法函数的说明,使读者易看懂、会应用。本书深入浅出,实例引导,讲解翔实,既可以作为高等院校数学建模和数学实验的参考教材,也可作为广大科研工程技术人员的参考用书。
作者简介
作者简介
温正 北京航空航天大学博士后,现就职于航天某院所,精通MATLAB、ANSYS、Fluent等工程仿真计算软件。在国内外期刊发表论文多篇,其中被SCI检索三篇,被EI检索十几篇,申请并获得授权专利多项,曾获得国防科学技术成果奖等奖项,出版过多本畅销计算机图书。
目录
目录
第一部分MATLAB应用基础
第1章MATLAB基础知识
1.1基本概念
1.1.1数据类型概述
1.1.2整数类型
1.1.3浮点数类型
1.1.4常量与变量
1.1.5数组、矩阵、向量和标量
1.1.6字符型数据
1.1.7运算符
1.1.8复数
1.1.9无穷量和非数值量
1.2向量
1.2.1向量的生成
1.2.2向量的加减和数乘运算
1.2.3向量的点、叉积运算
1.3数组
1.3.1数组的创建和操作
1.3.2数组的常见运算
1.4矩阵
1.4.1矩阵生成
1.4.2向量的生成
1.4.3矩阵加减运算
1.4.4矩阵乘法运算
1.4.5矩阵的除法运算
1.4.6矩阵的分解运算
1.5字符串
1.5.1字符串变量与一维字符数组
1.5.2对字符串的多项操作
1.5.3二维字符数组
1.6符号
1.6.1符号表达式的生成
1.6.2符号矩阵
1.6.3常用符号运算
1.7关系运算和逻辑运算
1.7.1关系运算
1.7.2逻辑运算
1.7.3常用函数
1.8复数
1.8.1复数和复矩阵的生成
1.8.2复数的运算
1.9数据类型间的转换
本章小结
第2章MATLAB编程
2.1MATLAB编程概述
2.2MATLAB编程原则
2.3分支结构
2.3.1if分支结构
2.3.2switch分支结构
2.4循环结构
2.4.1while循环结构
2.4.2for循环结构
2.5其他控制程序命令
2.6程序调试
2.6.1程序调试命令
2.6.2常见程序错误
2.6.3内存优化
2.7经典案例
本章小结
第3章MATLAB绘图
3.1数据图像绘制简介
3.1.1离散数据可视化
3.1.2连续函数可视化
3.2二维绘图
3.2.1二维图形基本绘图命令plot
3.2.2二维图形的修饰
3.2.3子图绘制法
3.2.4二维绘图的经典应用
3.3三维绘制
3.3.1三维绘图基本命令
3.3.2网格曲面隐藏线的显示和关闭
3.3.3三维绘图的实际应用
3.4特殊图形的绘制
3.4.1特殊二维图形的绘制
3.4.2特殊三维图形
本章小结
第4章GUI应用
4.1GUI基础概念
4.1.1GUI开发方法
4.1.2GUI基本元素
4.1.3GUI的层次
4.2菜单
4.2.1建立菜单和子菜单
4.2.2菜单对象常用属性
4.2.3快捷菜单
4.3GUIDE的使用
4.4使用M文件创建GUI对象
本章小结
第二部分MATLAB常规优化算法
第5章MATLAB线性规划
5.1线性规划的概念
5.2线性规划的标准形式
5.3线性规划的MATLAB函数
5.4线性规划问题求解方法
5.4.1单纯形线性规划问题求解
5.4.2多目标线性规划问题求解
5.5线性规划实例
5.5.1生产决策问题
5.5.2工作人员计划安排问题
5.5.3投资问题
5.5.4工件加工任务分配问题
5.5.5厂址选择问题
5.5.6确定职工编制问题
5.5.7生产计划的最优化问题
本章小结
第6章MATLAB非线性规划
6.1非线性规划基础
6.1.1非线性规划标准形式
6.1.2非线性规划MATLAB函数
6.2无约束非线性规划
6.2.1基本数学原理
6.2.2无约束非线性规划函数
6.2.3无约束非线性规划问题的应用
6.3求解非线性规划
6.3.1一维最优化方法
6.3.2无约束最优化方法
6.3.3约束最优化方法
6.4非线性规划实例
6.4.1遗传算法求解非线性规划
6.4.2资金调用问题
6.4.3经营最佳安排问题
本章小结
第7章无约束一维极值
7.1无约束算法基础
7.2进退法
7.3黄金分割法
7.4斐波那契法
7.5牛顿型法
7.5.1牛顿法
7.5.2阻尼牛顿法
7.6割线法
7.7抛物线法
7.8三次插值法
7.9坐标轮换法
本章小结
第8章无约束多维极值
8.1直接法
8.1.1模式搜索法
8.1.2单纯形搜索法
8.1.3Powell法
8.2使用导数计算的间接法
8.2.1最速下降法
8.2.2共轭梯度法
8.3拟牛顿法
本章小结
第9章约束优化方法
9.1约束优化方法简介
9.2随机方向法
9.3复合形法
9.4可行方向法
9.5惩罚函数法
本章小结
第10章二次规划
10.1基本概念
10.2拉格朗日法
10.3起作用集算法
本章小结
第11章多目标函数的优化方法
11.1概述
11.2理想点法
11.3线性加权和法
11.4最大最小法
11.5目标规划法
本章小结
第三部分MATLAB智能优化算法
第12章免疫优化算法及其实现
12.1基本概念
12.2人工免疫系统
12.3免疫遗传算法
12.4免疫算法MATLAB应用实例
12.4.1最短路径规划
12.4.2旅行商问题
12.4.3故障检测问题
本章小结
第13章粒子群优化算法的实现
13.1算法的基本概念
13.2算法的MATLAB实现
13.2.1算法的基本程序
13.2.2适应度函数
13.2.3免疫粒子群算法的MATLAB应用
13.3粒子群算法的权重控制
13.3.1线性递减法
13.3.2自适应法
13.4混合粒子群算法
13.4.1模拟退火免疫算法
13.4.2基于杂交的算法
精彩书摘
线性规划是运筹学中研究较早、发展较快、应用广泛且方法较成熟的一个重要分支,它是辅助人们进行科学管理的一种数学方法。
学习目标:
(1) 了解MATLAB线性规划基本概念;
(2) 了解MATLAB线性规划标准形式;
(3) 掌握MATLAB中线性规划函数的应用;
(4) 熟练掌握MATLAB线性规划问题求解。
5.1线性规划的概念
线性规划是研究线性约束条件下线性目标函数极值问题的数学理论和方法,英文缩写为LP。它是运筹学的一个重要分支,广泛应用于军事作战、经济分析、经营管理和工程技术等方面。为合理地利用有限的人力、物力、财力等资源做出最优决策,提供科学的依据。
线性规划模型首先是列出约束条件及目标函数,然后画出约束条件所表示的可行域,最后在可行域内求目标函数的最优解及最优值。线性规划模型求解流程图如图5��1所示。
图5��1线性规划模型求解流程图
5.2线性规划的标准形式
线性规划方法是在第二次世界大战中发展起来的一种重要的数学方法,它是处理线性目标函数和线性约束的一种较为成熟的方法,主要用于研究有限资源的最佳分配问题,即如何对有限的资源作出最佳方式地调配和最有利地使用,以便最充分地发挥资源的效能去获取最佳的经济效益。目前已经广泛应用于军事、经济、工业、农业、教育、商业和社会科学等方面。
线性规划问题的标准形式是
minz=c1x1+c2x2+…+cnxn
a11x1+a12x2+…+a1nxn=b1
a21x1+a22x2+…+a2nxn=b2
…
am1x1+am2x2+…+amnxn=bm
x1,x2,…,xn≥0
前言/序言
前言
MATLAB是美国MathWorks公司出品的商业数学软件,常用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。在优化算法中,MATLAB也有大量的应用。
优化算法有很多,关键是针对不同的优化问题,如可行解变量的取值(连续还是离散)、目标函数和约束条件的复杂程度(线性还是非线性)等,应用不同的算法。对于连续和线性等较简单的问题,可以选择一些经典算法,如梯度、Hessian矩阵、拉格朗日乘数、单纯形法、梯度下降法等。而对于更复杂的问题,则可考虑用一些智能优化算法,如遗传算法和蚁群算法。此外还包括模拟退火、禁忌搜索、粒子群算法等。
本书是利用MATLAB软件R2016b版本进行MATLAB优化算法应用的最新书籍。
1. 本书特点
(1) 由浅入深,循序渐进: 本书以有优化算法应用需求的读者为对象,首先从MATLAB应用基础知识讲起,接着详细讲解MATLAB求解各种优化问题,帮助读者尽快掌握MATLAB求解优化问题。
(2) 步骤详尽,内容新颖: 本书结合作者多年的MATLAB优化算法的使用经验与实际问题应用案例,将优化算法的分析及其MATLAB的实现方法和函数应用详细地讲解给读者。本书在讲解过程中步骤详尽、内容新颖,讲解过程辅以相应的图片,使读者在阅读时一目了然,从而快速掌握书中所讲内容。
(3) 实例典型,轻松易学: 书中多种优化算法求解案例,是掌握MATLAB优化算法和优化函数应用最好的方式。本书通过典型案例的求解,透彻、详尽地讲解了MATLAB在优化算法中的各种应用,即MATLAB优化函数的使用。
2. 本书内容
本书共18章,分为基础篇(MATLAB应用基础)、进阶篇(MATLAB常规优化算法)、高级篇(MATLAB智能优化算法)、综合应用篇四部分,帮助初、中级读者快速掌握MATLAB优化算法应用。本书基于MATLAB R2016b版,详细讲解MATLAB优化算法的基础知识和经典案例。具体内容如下:
第一部分为MATLAB应用基础部分。主要介绍MATLAB各种基础运算、编程和程序设计、二维绘图、三维绘图、GUI应用等内容。其中每章内容安排如下:
第1章: MATLAB基础知识第2章: MATLAB编程
第3章: MATLAB绘图 第4章: GUI应用
第二部分为MATLAB常规优化算法部分。主要介绍MATLAB线性规划、非线性规划、无约束一维极值、无约束多维极值、约束优化方法、二次规划、多目标函数的优化方法等内容。其中每章内容如下:
第5章: MATLAB线性规划 第6章: MATLAB非线性规划
第7章: 无约束一维极值 第8章: 无约束多维极值
第9章: 约束优化方法 第10章: 二次规划
第11章: 多目标函数的优化方法
第三部分为MATLAB智能优化算法部分。主要介绍免疫优化算法及其MATLAB实现、粒子群优化算法的MATLAB实现、遗传优化算法的MATLAB实现、小波变换的MATLAB实现、神经网络的MATLAB实现等内容。其中每章内容如下:
第12章: 免疫优化算法及其实现 第13章: 粒子群优化算法的实现
第14章: 遗传优化算法的实现 第15章: 小波变换的实现
第16章: 神经网络的实现
第四部分为MATLAB综合应用部分。主要介绍分形维数应用与MATLAB实现、经济金融最优化MATLAB应用等内容。其中每章内容如下:
第17章: 分形维数应用与实现 第18章: 经济金融最优化应用
3. 读者对象
本书适合MALTAB初学者和期望掌握MATLAB优化应用的读者。具体说明如下:
★相关从业人员 ★初学数学建模的技术人员
★大中专院校的教师和在校生 ★相关培训机构的教师和学员
★参加工作实习的“菜鸟” ★广大科研工作人员
4. 读者服务
为了方便解决本书疑难问题,读者朋友在学习过程中如果遇到与本书有关的技术问题,可以发邮件到邮箱caxart@126.com,或者访问博客http://blog.sina.com.cn/caxart,编者会尽快给予解答。
另外本书所涉及的素材文件(程序代码)已经上传到本书提供的博客中,读者可以自行下载。
5. 本书作者
本书主要由张岩、吴水根编著。此外,付文利、王广、沈再阳、林晓阳、任艳芳、唐家鹏、孙国强、高飞等也参与了本书部分内容的编写工作,在此表示感谢。
虽然作者在本书的编写过程中力求叙述准确、完善,但由于水平有限,书中欠妥之处在所难免,希望读者和同仁能够及时指出,共同促进本书质量的提高。
最后再次希望本书能为读者的学习和工作提供帮助!
编者
2017.7.1
MATLAB优化算法/科学与工程计算技术丛书:一本深度探索与实践的指导手册 本书并非一本单纯的算法罗列集,而是旨在构建一个全面、深入且极具实践性的MATLAB优化算法及科学与工程计算技术应用框架。其核心目标在于,帮助读者从理论到实践,系统性地掌握求解复杂科学与工程问题的强大工具和关键技术。从基础的算法原理讲解,到高级的应用技巧揭示,再到实际工程案例的剖析,本书力求为读者提供一条清晰的学习路径,最终培养出独立运用MATLAB解决实际问题的能力。 本书内容体系结构: 本书的编写遵循循序渐进、由浅入深的原则,将庞大的MATLAB优化算法及科学计算技术体系分解为若干逻辑清晰、相互关联的章节。整体上,可以概括为以下几个核心板块: 第一部分:MATLAB基础与数据处理 在深入探讨优化算法之前,扎实掌握MATLAB基础是必不可少的。本部分将从MATLAB的入门入手,涵盖变量、数据类型、基本运算、控制流(如if-else、for、while循环)以及函数定义与调用等核心概念。在此基础上,我们将重点关注数据导入、导出、清洗、预处理以及可视化技术。这包括但不限于: 数据导入与导出: 掌握读写多种文件格式(如.mat, .txt, .csv, .xlsx, .jpg等)的方法,了解如何处理不同分隔符、编码方式的数据。 数据清洗与预处理: 识别并处理缺失值(NaN)、异常值,数据标准化、归一化,以及对非数值型数据进行编码转换。 数据可视化: 熟练运用MATLAB的绘图函数(如plot, scatter, bar, hist, surf, contour等)进行二维、三维图形绘制,掌握图形美化、图例、坐标轴标签、标题等设置,以及制作交互式图形。 矩阵运算与操作: 深入理解MATLAB强大的矩阵运算能力,包括矩阵的创建、索引、切片、转置、求逆、特征值分解等,以及常用的矩阵函数(如ones, zeros, eye, rand, linspace, logspace等)。 第二部分:核心优化算法原理与MATLAB实现 这是本书的核心内容,我们将系统性地介绍各类主流的优化算法,并着重讲解它们在MATLAB中的具体实现和应用。每一类算法都将遵循“原理介绍-数学模型-MATLAB函数-应用示例”的模式进行讲解。 线性规划(Linear Programming, LP): 理论基础: simplex算法,对偶理论,可行域,最优解。 MATLAB函数: `linprog`函数的使用,包括目标函数、约束条件(等式约束、不等式约束)、变量上下界等参数的设置。 应用示例: 资源分配问题、生产调度问题、运输问题等。 非线性规划(Nonlinear Programming, NLP): 单目标优化: 无约束优化: 梯度下降法(Gradient Descent)、牛顿法(Newton's Method)、共轭梯度法(Conjugate Gradient Method)、拟牛顿法(Quasi-Newton Methods, 如BFGS)。 MATLAB函数: `fminunc`函数的使用,参数设置,求解示例。 有约束优化: 拉格朗日乘子法(Lagrange Multipliers)、KKT条件(Karush-Kuhn-Tucker Conditions)。 MATLAB函数: `fmincon`函数的使用,包括目标函数、约束条件(等式约束、不等式约束)、变量上下界、雅可比矩阵、Hessian矩阵等参数的设置。 二次规划(Quadratic Programming, QP): 理论基础: 目标函数为二次函数,约束为线性的优化问题。 MATLAB函数: `quadprog`函数的使用。 应用示例: 支持向量机(SVM)的训练、投资组合优化等。 多目标优化(Multi-objective Optimization): 理论基础: Pareto最优解,向量最优化。 MATLAB函数: 介绍MATLAB中处理多目标优化的一些工具和方法,可能涉及Pareto前沿的生成和可视化。 应用示例: 权衡多个相互冲突的目标,如成本与性能、效率与安全性。 整数规划(Integer Programming, IP)与混合整数规划(Mixed Integer Programming, MIP): 理论基础: 变量要求为整数的优化问题。 MATLAB函数: 介绍MATLAB中可用的整数规划求解器,如通过调用第三方求解器或利用特定函数。 应用示例: 选址问题、排班问题、项目选择问题等。 全局优化(Global Optimization): 理论基础: 避免陷入局部最优解,寻找全局最优解。 全局搜索算法: 模拟退火(Simulated Annealing)、遗传算法(Genetic Algorithms, GA)、粒子群优化(Particle Swarm Optimization, PSO)、差分进化(Differential Evolution, DE)、网格搜索(Grid Search)、随机搜索(Random Search)。 MATLAB函数: 全局优化工具箱: 重点讲解`Global Optimization Toolbox`中的函数,如`ga`, `particleswarm`, `simulannealbnd`, `patternsearch`, `bayesopt`等。 参数设置: Population size, mutation rate, crossover rate, number of iterations, stopping criteria等。 应用示例: 函数拟合、参数估计、复杂景观搜索等。 约束优化与鲁棒优化: 约束优化: 深入探讨各种约束条件的处理策略,以及它们对算法选择的影响。 鲁棒优化: 考虑参数不确定性下的优化问题,旨在找到在各种可能情况下的最优解。介绍不确定集(Uncertainty Sets)和相关的优化方法。 MATLAB应用: 演示如何在MATLAB中建模和求解鲁棒优化问题。 第三部分:科学与工程计算技术在MATLAB中的应用 优化算法常常是解决更广泛科学与工程问题的核心组成部分。本部分将聚焦于MATLAB在这些领域中的关键计算技术。 数值积分与微分: 理论基础: 梯形法则、辛普森法则、高斯积分,数值求导。 MATLAB函数: `integral`, `quad`, `diff`, `gradient`等函数的使用。 应用示例: 计算面积、体积,求解微分方程的初值问题与边值问题。 常微分方程(ODE)与偏微分方程(PDE)求解: ODE求解: 欧拉法、改进欧拉法、龙格-库塔法(Runge-Kutta Methods)等。 MATLAB函数: `ode45`, `ode23`, `ode15s`等求解器,参数设置,处理刚性方程。 PDE求解: 有限差分法(Finite Difference Method, FDM)、有限元法(Finite Element Method, FEM)、有限体积法(Finite Volume Method, FVM)等基本思想。 MATLAB函数: 介绍MATLAB PDE工具箱(PDE Toolbox)或其他相关工具,演示如何构建和求解PDE模型。 应用示例: 模拟物理过程(如热传导、流体动力学、电磁场)、生物系统动态等。 插值与拟合: 理论基础: 拉格朗日插值、样条插值(Spline Interpolation)、多项式拟合、最小二乘法(Least Squares)。 MATLAB函数: `interp1`, `interp2`, `spline`, `polyfit`, `polyval`, `fit`等函数的使用。 应用示例: 数据点之间的估算、曲线拟合、模型构建。 傅里叶变换与信号处理: 理论基础: 离散傅里叶变换(DFT)、快速傅里叶变换(FFT)、傅里叶级数。 MATLAB函数: `fft`, `ifft`, `fftshift`, `fft2`, `ifft2`等函数的使用。 应用示例: 信号的频谱分析、滤波、降噪、图像处理中的频率域操作。 线性代数与稀疏矩阵: 理论基础: 线性方程组的求解、特征值问题、奇异值分解(SVD)。 MATLAB函数: `` (左除), `` (右除), `lu`, `qr`, `eig`, `svd`等。 稀疏矩阵: 概念、存储方式、相关运算,及其在大型问题中的优势。 应用示例: 系统建模、稳定性分析、降维。 随机数生成与蒙特卡洛模拟: 理论基础: 各种概率分布的随机数生成,蒙特卡洛方法的原理。 MATLAB函数: `rand`, `randn`, `randi`, 以及其他更专业的随机数生成函数。 应用示例: 风险评估、金融建模、模拟复杂系统行为、数值积分。 第四部分:高级应用与最佳实践 在掌握了基础和核心技术之后,本部分将带领读者进入更高级的应用领域,并分享在实际工程中提炼出的最佳实践。 模型验证与灵敏度分析: 模型验证: 如何评估模型的准确性,交叉验证(Cross-validation)技术。 灵敏度分析: 分析模型输出对输入参数变化的敏感程度,识别关键参数。 MATLAB实现: 介绍相关的MATLAB工具和方法。 算法集成与工作流构建: 多算法组合: 如何将不同的优化算法或计算技术有机结合,解决更复杂的问题。 自动化工作流: 设计和实现可重复、可扩展的计算流程。 MATLAB脚本与函数: 强调代码的模块化、可读性和可维护性。 性能优化与并行计算: 代码优化技巧: 向量化操作,避免循环,选择高效算法。 并行计算: 利用多核CPU和GPU加速计算。 MATLAB并行计算工具箱: `parfor`, `spmd`, GPU计算等。 实际工程案例分析: 本书将精选若干来自不同工程领域的真实案例,如: 机械工程: 结构优化设计,振动分析。 电子工程: 电路参数优化,信号滤波设计。 控制工程: PID控制器参数整定,系统辨识。 化学工程: 反应器设计,过程优化。 金融工程: 投资组合优化,风险管理。 每个案例都将详细阐述问题背景、数学建模、MATLAB算法选择与实现、结果分析与讨论,展示优化算法和科学计算技术的实际威力。 本书的特色与优势: 理论与实践的完美结合: 既有深入的理论讲解,又提供大量的MATLAB代码示例,确保读者能够学以致用。 系统性的知识体系: 覆盖从基础到高级的MATLAB优化算法和科学计算技术,构建完整的知识图谱。 丰富的应用案例: 通过贴近实际的工程案例,帮助读者理解算法在解决真实世界问题中的价值。 循序渐进的学习路径: 适合不同水平的读者,从入门者到有经验的工程师和研究人员都能从中获益。 详实的MATLAB函数讲解: 深入剖析关键MATLAB函数的参数、用法和注意事项,避免“知其然不知其所以然”。 强调算法的理解与选择: 不仅教会读者如何使用MATLAB函数,更引导读者理解不同算法的适用场景、优缺点,以及如何根据问题特性进行选择。 本书的宗旨是成为您在MATLAB优化算法和科学工程计算领域探索的可靠伙伴,帮助您自信地应对和解决日益复杂的工程挑战。