编辑推荐
本书侧重于优化算法的MATLAB实现,精选了大量的优化实例,通过实例分析求解,做到理论与实践相结合。该书适用于计算应用、优化领域和科学计算方向的研究人员使用,也可作为高校该类课程的本科生和研究生教材,还可作为读者查询优化数学问题求解方法的参考书。
内容简介
本书以MATLAB R2015b版本进行编写,以优化计算为主线、MATLAB为辅助工具进行讲述,实用性非常强,优化方法也非常丰富,主要包括MATLAB R2015b概述、MATLAB计算基础、MATLAB数值计算、优化计算概述、线性规划、非线性规划、整数规划、二次规划、多目标规划及其他规划、群智能算法等内容。
该书侧重于优化算法的MATLAB实现,精选了大量的优化实例,通过实例分析求解,做到理论与实践相结合。
该书适用于计算应用、优化领域和科学计算方向的研究人员使用,也可作为高校该类课程的本科生和研究生教材,还可作为读者查询优化数学问题求解方法的参考书。
内页插图
目录
第1章 MATLABR2015b概述
1.1 MATLAB简介
1.1.1 MATLAB的发展史
1.1.2 MATLAB的优点
1.1.3 MATLAB系统组成
1.1.4 MATLAB应用程序
1.1.5 MATLABR2015b新功能
1.2 MATLABR2015b的工作环境
1.2.1 MATLABR2015b的安装
1.2.2 MATLAB集成开发环境
1.3 MATLABR2015b的帮助系统
1.3.1 纯文件帮助
1.3.2 文档帮助
1.3.3 Demos帮助
1.4 MATLAB初步使用
1.5 MATLAB的基础知识
1.5.1 数据类型
1.5.2 运算符
1.6 控制流
1.6.1 顺序结构
1.6.2 选择结构
1.6.3 循环结构
1.6.4 错误控制结构
1.7 M文件
1.7.1 M脚本文件
1.7.2 M函数文件
第2章 MATLAB计算基础
2.1 矩阵及其运算
2.1.1 矩阵的创建
2.1.2 矩阵的运算
2.1.3 矩阵的分解
2.2 复数及其运算
2.2.1 复数的表示
2.2.2 复数的绘图
2.2.3 复数操作函数
2.3 MATLAB绘图
2.3.1 绘图的基本步骤
2.3.2 在工作区直接绘图
2.3.3 利用函数绘图
2.3.4 图形的修饰
2.3.5 绘制特殊图形
2.4 简单图像处理
2.5 MATLAB函数
2.5.1 函数类型
2.5.2 参数传递
2.6 编程技巧
2.6.1 嵌套计算
2.6.2 循环计算
2.6.3 处理机制
2.6.4 使用全局变量
第3章 MATLAB数值计算
3.1 数据排序
3.1.1 最值
3.1.2 平均值与中值
3.1.3 分位数
3.1.4 求和(积)
3.1.5 求累积积(和)
3.1.6 方差与标准差
3.1.7 协方差与相关系数
3.1.8 排序
3.1.9 偏斜度与峰值
3.2 符号运算
3.2.1 符号对象的生成
3.2.2 符号表达式的操作
3.2.3 符号微积分
3.3 多项式运算
3.3.1 多项式的四则运算
……
第4章 最优化计算概述
第5章 线性规划
第6章 非线性规划
第7章 整数规划
第8章 二次规划
第9章 多目标规划及其他规划
第10章 群智能算法
参考文献
前言/序言
MATLAB作为一款科学计算软件逐渐被广大科研人员所接受,以其强大的数据计算功能、图像的可视化界面及代码的可移植性受到了广大高校师生及科研人员的认可,借助MATLAB能够解决绝大部分的工程问题。对于从事数据分析和计算方面的工作者和学习者来说,MATLAB是一个很好的工具。
MATLAB的创始人是Cleve Moler,他是美国工程院院士,MathWroks董事长和首席数学家。MATLAB可用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为需要进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
最优化理论和方法自古就有,最典型的实例就是黄金分割,最优化方法形成为科学方法则是在17世纪后。牛顿和莱布尼茨创立的微积分理论为最优化问题的解决提供了理论基础,而后产生的优化方法和简单库存模型等精确的解析方法可以称为古典最优化方法。虽然古典最优化方法出现得比较早,但是由于计算手段的限制,这些方法在解决实际问题时遇到了瓶颈,随着计算机的兴起和日益普及,原来制约优化设计的技术突飞猛进,得到了广泛的应用并创造了巨大的经济效益和社会价值。
随着计算机应用技术的发展,各种可用于最优化的方法设计与实现的软件层出不穷,丰富了科研技术人员的开发研究手段,提高了解决实际问题的效率。而MATLAB以其强大的科学计算功能和覆盖面广、专业性强的工具箱发展成适合多学科、跨平台的大型实用科学计算软件,也为最优化计算问题的解决提供了有力的工具。
本书以工程应用为基础,将最优化理论和方法与MATLAB相结合,帮助读者从理论和实践两个方面提高解决最优化的能力,让即便是数学基础不够深厚的读者,也同样能够利用MATLAB解决较难的最优化数学问题,为读者能够快速地进入这个领域、设计高效可行的最优化方案奠定一个扎实的基础。
编写本书具有如下特点。
(1)版本新,函数新。
MATLAB每年更新两次,神经网络工具箱也随之更新换代,许多旧的函数废弃不用,同时又有新的函数补充进来。本书基于MATLAB R2015b,介绍了新版本下的神经网络工具箱的使用方法。
(2)由浅入深,层次分明。
本书的内容以最优化理论为主线,最优化方法与实际应用相结合的实例为基础,结合编者的多年教学实践经验,由浅入深地介绍各种最优化理论和方法在MATLAB中的实现方法。 (3)内容讲解不枯燥。
本书结合相关理论和实践,由实践支撑理论,通过求解流程以及算法迭代过程的实现,让读者更容易理解并且掌握,书中许多实例是读者经常碰到的,读起来不枯燥。
(4)应用性强。
在介绍最优化设计的章节中,每章都有应用MATIAB解决各领域中的实际最优化问题,最后以一个或几个实际应用的例子总结本章内容,帮助降低读者学习门槛、提高学习效率。
全书共分为10章,主要内容包括:
第1章 介绍MATLAB R2015b,主要包括MATIAB的发展史、MATLABR2015b的新功能、MATLAB的工作环境及控制流等内容。
第2章 介绍MATLAB计算基础,主要包括MATLAB的矩阵、绘图、编程技巧等内容。
第3章 介绍MATLAB数值计算,主要包括数据排序、符号运算、多项式运算、数据插值等内容。
第4章对最优化计算进行概述,主要包括最优化的发展史、最优化的定义、优化工具箱等内容。
第5章介绍线性规划,主要包括对线性规划的概述,线性规划的标准型、方法、实际应用等内容。
第6章介绍非线性规划,主要包括非线性规划的概述、一维最优化方法、多维无约束非线性、非线性规划的实际应用等内容。
第7章 介绍整数规划,主要包括整数规划的概述、案例分析、求解、实际应用等内容。
第8章 介绍二次规划,主要包括等式约束二次规划及二次规划的MATLAB实现等内容。
第9章介绍多目标规划及其他规划,主要包括多目标规划、最大最小化、半无限规划、动态规划等内容。
第10章介绍了群智能算法,主要包括粒子群算法、遗传算法、模拟退火算法等内容。
本书适用于计算应用、最优化领域和科学计算方向的研究人员使用,也可作为高校该类课程的本科生和研究生的教材,还可作为读者查询最优化数学问题求解方法的参考书。
本书主要由李娅编写,此外参与编写的还有李炳辉、李丹、曾虹雁、邓俊辉、邓秀乾、邓耀隆、高泳崇、李嘉乐、李旭波、梁朗星、梁志成、刘超、刘泳、卢佳华、张棣华、张金林、钟东山、詹锦超、叶利辉、杨平和许兴杰。
由于时间仓促,加之作者水平有限,错误和疏漏之处在所难免。在此,诚恳地期望得到各领域的专家和广大读者的批评指正。
MATLAB R2015b 最优化计算:理论、方法与实践 书籍简介 本书深入探讨了在MATLAB R2015b环境下进行科学计算和工程应用中至关重要的“最优化计算”这一领域。本书的目标读者是那些需要掌握最优化工具来解决实际问题的研究人员、工程师、学生以及任何对算法优化感兴趣的专业人士。我们旨在提供一个全面、系统且易于理解的指南,帮助读者从理论基础到实际应用,熟练运用MATLAB R2015b中的最优化函数和工具箱,高效地解决各种复杂的最优化问题。 核心内容概述 本书的内容围绕以下几个核心模块展开,力求为读者构建一个扎实而全面的知识体系: 第一部分:最优化计算基础 引言与概念梳理: 本章将从最优化问题的基本定义出发,阐述最优化计算在科学、工程、经济、管理等众多领域的核心价值和广泛应用。我们将介绍最优解、可行域、目标函数、约束条件等基本概念,并区分无约束最优化和有约束最优化。 数学建模: 强调将实际问题转化为数学模型的重要性。我们将探讨如何准确地识别问题的目标函数和约束条件,并讨论不同类型问题的数学表达方式,例如线性规划、二次规划、非线性规划等。 基本理论回顾: 回顾并梳理最优化理论中的关键概念,包括凸集、凸函数、KKT条件(Karush-Kuhn-Tucker conditions)等。理解这些理论基础对于深入理解算法的工作原理和选择合适的求解器至关重要。我们将尽量用直观易懂的方式解释这些抽象概念,并结合简单的数学例子进行说明。 第二部分:MATLAB R2015b 最优化工具箱概览 工具箱介绍与安装: 详细介绍MATLAB R2015b中“Optimization Toolbox”的功能和结构。我们将演示如何安装和验证工具箱,以及如何通过MATLAB的帮助文档来查阅相关函数。 核心函数解析: 本部分将逐一介绍Optimization Toolbox中最常用和最核心的最优化函数,并对它们的功能、输入参数、输出结果进行详细的解析。这些函数包括但不限于: 无约束最优化函数: 如 `fminunc`(用于寻找无约束非线性函数的局部最小值)、`fminsearch`(用于寻找无约束多变量函数的局部最小值,基于Nelder-Mead方法)。我们将讲解它们适用的问题类型,以及如何设置选项来控制求解器的行为。 有约束最优化函数: 线性规划: `linprog`(用于解决标准形式或各种变体的线性规划问题)。我们将详细介绍标准形式的定义以及如何将不同形式的线性规划问题转化为标准形式。 二次规划: `quadprog`(用于解决二次规划问题,即目标函数为二次函数,约束为线性函数)。 非线性规划: `fmincon`(用于解决各种形式的有约束非线性规划问题,包括不等式约束、等式约束、边界约束)。我们将重点讲解如何定义和输入约束条件,以及不同算法选项(如SQP、trust-region-reflective等)的适用场景。 其他重要函数: 介绍如 `lsqnonlin`(用于解决非线性最小二乘问题)、`lsqnonneg`(用于解决非负最小二乘问题)等,并说明它们在工程和科学计算中的独特应用。 选项设置与调优: 深入讲解如何通过选项结构体 (`options`) 来精细控制最优化函数的求解过程。我们将涵盖常用的选项,如迭代次数限制 (`MaxIter`)、收敛容差 (`TolFun`, `TolCon`)、显示迭代信息 (`Display`)、选择求解算法 (`Algorithm`) 等,并示范如何根据问题的特点调整这些选项以获得更优的求解效果。 第三部分:无约束最优化方法与实践 梯度下降法(Gradient Descent): 详细阐述梯度下降法的基本原理,包括一阶和二阶梯度下降法的区别。我们将通过MATLAB代码演示如何实现简单的梯度下降算法,并分析其收敛性和优缺点。 牛顿法(Newton’s Method): 介绍牛顿法的基本思想,即利用Hessian矩阵的逆来加速收敛。我们将讨论其收敛速度的优势以及计算Hessian矩阵的挑战。 拟牛顿法(Quasi-Newton Methods): 重点介绍BFGS、DFP等经典的拟牛顿方法,它们通过近似Hessian矩阵或其逆来避免直接计算Hessian,从而在保持较快收敛速度的同时降低计算复杂度。我们将通过实例展示如何在MATLAB中使用 `fminunc` 结合不同的拟牛顿算法选项。 共轭梯度法(Conjugate Gradient Method): 介绍共轭梯度法的原理,特别是在求解大型稀疏线性方程组和无约束最优化问题中的应用。我们将展示如何在MATLAB中使用 `pcg`(预条件共轭梯度法)进行求解。 MATLAB 实例分析: 选取典型的无约束最优化问题,如函数极值寻找、曲线拟合中的参数估计等,通过MATLAB代码演示如何运用 `fminunc` 和 `fminsearch` 进行求解,并对结果进行分析和验证。 第四部分:有约束最优化方法与实践 线性规划: 单纯形法(Simplex Method)简介: 简要介绍单纯形法的基本思想和步骤,帮助读者理解 `linprog` 求解线性规划问题的底层逻辑。 内点法(Interior-Point Methods)简介: 介绍内点法的优势,尤其是在处理大规模线性规划问题时的效率。 MATLAB `linprog` 应用: 详细讲解 `linprog` 的各种用法,包括如何定义目标函数、约束矩阵(等式和不等式)、边界条件。通过多个具有代表性的线性规划实例,如资源分配、生产计划、运输问题等,演示如何构建MATLAB模型并求解。 二次规划: 二次规划问题定义: 明确二次规划问题的目标函数和约束形式。 MATLAB `quadprog` 应用: 详细讲解 `quadprog` 的参数设置,包括二次项系数矩阵、线性项系数向量、约束矩阵、边界等。通过实例,如支持向量机(SVM)中的二次规划子问题、投资组合优化等,展示 `quadprog` 的应用。 非线性规划: KKT 条件的应用: 深入阐述KKT条件在判断非线性规划局部最优解的重要性,并解释 `fmincon` 如何基于这些条件进行求解。 MATLAB `fmincon` 应用: 重点讲解 `fmincon` 的复杂参数设置,包括如何定义非线性目标函数、不等式约束函数、等式约束函数,以及它们的梯度和Hessian(如果提供)。通过实际工程问题,如结构优化、参数辨识、鲁棒控制等,演示 `fmincon` 的强大功能。 算法选择策略: 提供如何根据问题特性选择合适的 `fmincon` 求解算法的指导。 非线性最小二乘问题: 最小二乘法理论: 回顾最小二乘法的基本概念。 MATLAB `lsqnonlin` 应用: 讲解如何使用 `lsqnonlin` 解决方程组的拟合、参数估计等问题。 MATLAB `lsqnonneg` 应用: 演示如何使用 `lsqnonneg` 解决非负约束下的最小二乘问题。 第五部分:高级主题与应用 全局最优化: 介绍全局最优化问题的挑战,以及MATLAB中用于全局最优化的函数,如 `GlobalSearch` 和 `MultiStart`,并演示它们在复杂多模态函数寻优中的应用。 目标规划与多目标优化: 探讨当存在多个相互冲突的目标时如何进行最优化。介绍多目标优化的一些基本概念和MATLAB中相关函数(虽然Optimization Toolbox本身不直接包含多目标优化器,但可以结合其他工具或自定义方法)。 鲁棒最优化: 介绍鲁棒最优化思想,即在模型参数存在不确定性时,如何设计最优解,使其对不确定性具有更好的容忍度。 与其他MATLAB工具箱的结合: 探讨如何将Optimization Toolbox与其他MATLAB工具箱(如Simulink, Control System Toolbox, Statistics and Machine Learning Toolbox等)结合使用,以解决更广泛和复杂的工程问题。例如,在Simulink中进行参数优化,或在机器学习模型训练中使用最优化技术。 实际应用案例研究: 精选若干典型的、来自不同领域的实际应用案例,如: 工程设计优化: 例如,结构件的轻量化设计、通信系统的参数优化。 金融投资组合优化: 平衡风险与收益,最大化预期收益。 数据科学与机器学习: 模型训练中的参数寻优,如支持向量机(SVM)、神经网络的训练。 运筹学问题: 物流配送路径优化、生产调度优化。 通过详细的案例分析,读者将能够将所学知识融会贯通,并掌握将实际问题转化为MATLAB最优化模型并求解的完整流程。 本书特色 理论与实践并重: 本书不仅深入讲解最优化计算的数学原理,更注重在MATLAB R2015b环境下的实际操作。 丰富的MATLAB示例: 大量精心设计的MATLAB代码示例,覆盖了各种最优化问题类型,并附有详细的解释,方便读者学习和模仿。 循序渐进的讲解: 从基础概念到高级应用,由浅入深,确保不同背景的读者都能理解和掌握。 实用的问题解决思路: 强调如何将实际问题建模为数学最优化问题,以及如何根据问题特点选择合适的MATLAB工具。 贴近最新MATLAB版本: 基于MATLAB R2015b进行讲解,确保内容的有效性和实用性。 结语 通过学习本书,读者将能够自信地运用MATLAB R2015b强大的最优化计算能力,有效地解决他们在科研、工程和实际工作中遇到的各种复杂问题。我们希望本书能够成为您在最优化计算领域学习和探索的得力助手。