书籍作者:谢中华 | ISBN:9787512430525 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:6061 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书主要介绍常用数学建模方法及其MATLAB实现与应用,内容包括MATLAB数组运算、MATLAB程序设计、MATLAB绘图与可视化、MATLAB数据管理、MATLAB符号计算、MATLAB数值计算、多项式与插值拟合、常用统计及优化建模方法与MATLAB求解、人工神经网络方法、排队论方法、以层次分析法和模糊综合评价法为代表的多指标综合评价方法、MATLAB图像处理基础、Simulink建模与仿真、全国大学生数学建模竞赛真题解析等。
本书可作为高等院校学生的数学建模或与数学实验相关课程的教材或教学参考书,也可作为从事数学建模应用的研究人员的参考用书。
谢中华,副教授,天津市现场统计研究会理事,资深MATLAB培训师,MATLAB技术论坛创始人之一,已出版书籍《MATLAB统计分析与应用:40个案例分析》《MATLAB从零到进阶》《新编MATLAB/Simulink自学一本通》。长期从事数学建模及MATLAB相关课程的教学与培训,多次指导本科生获得全国大学生数学建模竞赛国家一等奖,长期参与中国研究生数学建模竞赛阅卷工作,多次指导硕士生获得中国研究生数学建模竞赛国家一等奖。精通MATLAB、SAS、R语言等软件,擅长多种软件“协同作战”,有着扎实的理论基础和丰富的实战经验。
①作者资深。作者是MATLAB中文论坛的资深版主,大学资深数学建模竞赛的指导老师,多年教授“数学建模和数学实验”等课程的一线老师, MATLAB资深培训师。2016年,谢中华老师和他的“爱情行列式”曾红极一时,网上的阅读量破百万。
②案例驱动。从指导老师的角度,结合数学建模案例全面介绍常用的数学建模方法及其MATLAB实现,深入浅出,通俗易懂。
③双系统性。数学建模方法与MATLAB编程均成体系,即可作为MATLAB从基础到提到的进阶教程,也可作为数学建模与数学实验的教程。
④内容全面。建模所要用到的MATLAB书中都有介绍,常用数学建模方法也举例作了讲解,最后辅以详尽的历年真题解析。
⑤代码免费。书中代码和数据可以通过论坛、出版社网站、网盘免费下载。详见书中前言部分。
数学是一门研究现实世界数量关系和空间形式的科学。很多人在学习数学类课程的时候,都会有一定的困惑:数学这么难,学习数学到底有什么用? 数学的难体现在大多数的数学知识都很抽象,让人很难联系实际。其实数学正是来源于实际,是从实际中抽象出来的。如果能够尝试用抽象的数学知识去解决实际问题,一切将变得具象起来,数学的学习会变得更有意思,也会更简单。在人类的发展历史中,许多科学家用数学模型来描述客观世界,促进了人类文明的发展,诸如17世纪牛顿提出的万有引力定律、20世纪爱因斯坦提出的广义相对论,这些都是数学成功应用的典范。
将数学应用于实际,这正是数学建模所要研究的内容。现如今,数学已经应用于日常生活的方方面面,数学建模也越来越受到人们的重视,几乎所有高校都开设了数学建模课程,以此提高学生们应用数学知识解决实际问题的能力,甚至有些中小学也在尝试开展数学建模活动。放眼世界,每年都会有大大小小的各类数学建模竞赛活动,比较著名的有“全国大学生数学建模竞赛”“中国研究生数学建模竞赛”和“美国大学生数学建模竞赛”。笔者每年都要指导学生参加这些竞赛活动,也多次获得优异的成绩。
用数学知识解决实际问题通常包括两个基本步骤:首先,需要把问题进行抽象,用数学的语言去描述,即在一定的合理假设下建立合适的数学模型;其次,建立数学模型后,需要选择合适的工具求解模型。这里的求解并不只是简单的公式推导,大多数情况下不能靠手算实现,必须要借助计算机软件来实现。笔者在指导学生参加数学建模竞赛的过程中,也切身体会到学生面临的最大困难往往并不是建立模型,而是编写程序求解模型。在众多的科学计算软件中,MATLAB是求解数学模型的利器。相比于其他软件,MATLAB有“草稿纸式”的编程语言,还有包罗万象的工具箱,易学易用,用户不仅可以调用其内部函数进行“傻瓜式”的计算,还可以根据自己的算法进行扩展编程。本书将结合数学建模案例全面介绍常用的数学建模方法及其MATLAB实现。相比于其他同类型的著作,本书的特色是双系统性,对数学建模方法与MATLAB编程语言的介绍都是自成系统的,当然也是紧密结合的。本书既可作为MATLAB从基础到提高的进阶教程,也可作为数学建模与数学实验的教程。
数学学科的分支有很多,这也就决定了数学建模的方法也有很多。对比近些年的数学建模竞赛赛题不难发现,数学建模所要解决的实际问题往往是开放性的,并没有一个标准答案,解决问题的过程也是比较复杂的,会用到多种不同的建模方法。大致总结一下,常用的数学模型与建模方法包括:积分模型、代数方程模型、常微分方程模型、偏微分方程模型、回归模型、线性规划模型、非线性规划模型、多目标规划模型、整数规划模型、图与网络优化模型、多项式与插值拟合方法、基本概率统计方法、方差分析方法、聚类分析方法、判别分析与模式识别方法、主成分分析法、遗传算法、模拟退火算法、粒子群算法、蚁群算法、人工神经网络方法、排队论方法、层次分析法、模糊综合评价法、图像处理方法、Simulink建模仿真方法等。针对具体问题,如何从众多的建模方法中选择合适的方法,建立合适的数学模型,这是让很多人颇感困惑的问题,笔者希望本书中大量的案例能给读者带来启发。
笔者长期从事本科生“数学建模与数学实验”“数据分析与数学软件实践”“高等数学”“线性代数”“概率论与数理统计”,硕士研究生“工程数学”,博士研究生“应用数学基础”等课程的教学。在教学中,笔者把MATLAB和数学建模方法引入课堂,深受学生欢迎。本书也是笔者长期教学经验的总结。
本书章节是这样安排的:第1章,MATLAB数组运算;第2章,MATLAB程序设计;第3章,MATLAB绘图与可视化;第4章,MATLAB数据管理;第5章,MATLAB符号计算;第6章,MATLAB数值计算;第7章,多项式与插值拟合;第8章,常用统计建模方法与MATLAB求解;第9章,常用优化建模方法与MATLAB求解;第10章,人工神经网络方法;第11章,排队论方法;第12章,多指标综合评价方法;第13章,MATLAB图像处理基础;第14章,Simulink建模与仿真;第15章,全国大学生数学建模竞赛真题解析。在章节顺序的安排上,以MATLAB软件为切入点,结合大量案例循序渐进地介绍常用的数学建模方法及其MATLAB实现,最后通过真题解析进行实战演练。相信通过本书的学习,读者一定能够在短时间内提高解决实际问题的能力,成为数学建模的高手!
针对本书,MATLAB中文论坛(http://www.ilovematlab.cn/)特别提供了读者与作者在线交流的平台https://www.ilovematlab.cn/forum-275-1.html,笔者希望在这个平台上与广大读者作面对面的交流,解决大家在学习本书过程中遇到的问题,分享彼此的学习经验,共同提高数学建模和模型求解的能力!
本书的所有数据和源程序可通过扫描本页的二维码→关注“北航科技图书”公众号→ 回复“3052”免费获得。所有程序在MATLAB R2018b(MATLAB 9.5)下通过了验证,均能够正确执行,读者可将自己的MATLAB更新至较新的版本,以免出现不必要的问题。
在本书的写作过程中,笔者得到了北京航空航天大学出版社陈守平编辑、天津工业大学汪晓银教授、MathWorks公司工程师卓金武、MATLAB 中文论坛管理员Smile(吕凌曦)和MATLAB技术论坛管理员Dynamic(詹惠崇)的支持与鼓励。在此,向他们表示最真诚的谢意! 此外,笔者也得到了天津科技大学理学院和数学系领导及同事们的支持与鼓励。张大克、邱玉文、王霞、邢化明、王玉杰、崔家峰、刘寅立、贾学龙、王洪武、张立东、孟祥波、李玉峰、廖嘉、夏国坤和孙明晶为本书提出了宝贵的修改意见,在此一并表示最诚挚的感谢!
最后,还要感谢我的妻儿,他们默默地为我付出,支持我顺利完成本书的写作。在此,向我的妻子和儿子表示最衷心的感谢!
由于作者水平有限,书中若存在疏漏和不当之处,恳请广大读者和同行批评指正! 作者邮箱:[email protected]。本书勘误网址:https://www.ilovematlab.cn/thread-578894-1-1.html。
谢中华
2019年6月
第1章 MATLAB数组运算 1
1.1 MATLAB工作界面布局 1
1.2 变量的定义与数据类型 2
1.2.1 变量的定义与赋值 2
1.2.2 MATLAB中的常量 2
1.2.3 MATLAB中的关键字 4
1.2.4 数据类型 4
1.2.5 数据输出格式 5
1.3 常用函数 5
1.4 数组的定义 7
1.4.1 向量的定义 7
1.4.2 矩阵的定义 8
1.4.3 特殊矩阵 10
1.4.4 高维数组 12
1.4.5 访问数组元素 13
1.4.6 定义元胞数组(Cell Array) 14
1.4.7 定义结构体数组 15
1.4.8 几种数组的转换 16
1.4.9 定义数据集数组 18
1.4.10 定义表格型数组 18
1.5 矩阵运算 19
1.5.1 矩阵的算术运算 19
1.5.2 矩阵的关系运算 21
1.5.3 矩阵的逻辑运算 21
1.5.4 矩阵的其他常用运算 22
第2章 MATLAB程序设计 26
2.1 MATLAB语言的流程结构 26
2.1.1 条件控制结构 26
2.1.2 循环结构 27
2.1.3 try catch试探结构 28
2.1.4 break、continue、return和pause函数 29
2.2 编写自己的MATLAB程序 29
2.2.1 脚本文件 29
2.2.2 函数文件 29
2.2.3 匿名函数 31
2.2.4 子函数与嵌套函数 31
2.2.5 函数的递归调用 33
2.2.6 MATLAB常用快捷键和快捷命令 34
第3章 MATLAB绘图与可视化 36
3.1 图形对象与图形对象句柄 36
3.1.1 句柄式图形对象 36
3.1.2 获取图形对象属性名称和属性值 37
3.1.3 设置图形对象属性值 38
3.2 二维图形的绘制 38
3.2.1 基本二维绘图函数 38
3.2.2 二维图形修饰和添加注释 41
3.2.3 特殊二维绘图函数 46
3.3 三维图形的绘制 48
3.3.1 常用三维绘图函数 48
3.3.2 三维图形的修饰和添加注释 53
3.4 图形的复制和输出 54
3.4.1 把图形复制到剪贴板 54
3.4.2 把图形导出到文件 55
第4章 MATLAB数据管理 56
4.1 利用数据导入向导导入数据 56
4.1.1 利用数据导入向导导入TXT文件 56
4.1.2 利用数据导入向导导入Excel文件 58
4.2 调用函数读取外部数据 59
4.2.1 调用dlmread函数读取TXT数据文件 59
4.2.2 调用textscan函数读取TXT数据文件 60
4.2.3 调用xlsread函数读取Excel数据文件 65
4.2.4 调用dataset函数创建数据集 67
4.2.5 调用readtable函数创建数据表 68
4.3 把数据写入文件 68
4.3.1 调用save函数保存计算结果 69
4.3.2 调用xlswrite函数把数据写入Excel文件 70
第5章 MATLAB符号计算 72
5.1 符号对象和符号表达式 72
5.1.1 创建符号对象 72
5.1.2 符号变量取值域的限定 73
5.1.3 创建符号表达式 73
5.1.4 符号表达式的常用运算 75
5.1.5 符号运算中的转换操作 77
5.1.6 符号函数绘图 79
5.2 符号微积分 80
5.2.1 极限、导数和级数的符号计算 80
5.2.2 符号积分计算 82
5.3 符号方程求解 82
5.3.1 符号代数方程求解 82
5.3.2 符号常微分方程求解 84
第6章 MATLAB数值计算 86
6.1 微积分问题的数值解 86
6.1.1 离散数据求差分及导数 86
6.1.2 离散数据求积分 87
6.1.3 一元或多元函数的数值积分 88
6.2 代数方程与方程组的数值解 89
6.3 常微分方程与方程组的数值解 94
6.3.1 求解初值问题 94
6.3.2 求解延迟微分方程(DDE) 99
6.3.3 求解边值问题 102
6.4 偏微分方程与方程组的数值解 104
6.4.1 偏微分方程的基本概念 104
6.4.2 有限差分法 105
6.4.3 偏微分方程求解函数 109
6.4.4 双曲型偏微分方程求解实例 110
6.4.5 抛物型偏微分方程求解实例 116
6.4.6 椭圆型偏微分方程求解实例 117
6.4.7 pdepe函数应用实例 120
6.4.8 偏微分方程可视化求解工具 124
第7章 多项式与插值拟合 128
7.1 多项式拟合 128
7.1.1 多项式拟合的数学模型 128
7.1.2 多项式拟合的MATLAB实现 128
7.1.3 多项式回归案例 129
7.2 插值问题的数学描述 132
7.2.1 什么是插值 132
7.2.2 一维插值问题的数学描述 132
7.2.3 二维插值问题的数学描述 133
7.2.4 三次样条插值的数学描述 133
7.3 MATLAB常用插值函数 134
7.4 插值拟合案例 134
7.4.1 一维插值 134
7.4.2 二维插值 138
7.4.3 高维插值 143
第8章 常用统计建模方法与MATLAB求解 145
8.1 描述性统计量和统计图 145
8.1.1 描述性统计量 146
8.1.2 统计图 148
8.2 参数估计 153
8.2.1 常见分布的参数估计 153
8.2.2 自定义分布的参数估计 154
8.3 正态总体参数的假设检验 155
8.3.1 总体标准差已知时的单个正态总体
均值的U 检验 155
8.3.2 总体标准差未知时的单个正态总体均值的t检验 157
8.3.3 总体标准差未知时的两个正态总体均值的比较t检验 158
8.3.4 总体均值未知时的单个正态总体方差的χ2 检验 160
8.3.5 总体均值未知时的两个正态总体方差的比较F 检验 161
8.4 常用非参数检验 161
8.4.1 游程检验 162
8.4.2 符号检验 163
8.4.3 Wilcoxon符号秩检验 164
8.4.4 Mann Whitney秩和检验 165
8.4.5 分布的拟合与检验 166
8.4.6 列联表检验 169
8.5 方差分析 171
8.5.1 单因素方差分析 172
8.5.2 双因素方差分析 175
8.5.3 方差分析的MATLAB实现 179
8.6 回归分析 184
8.6.1 一元线性回归 184
8.6.2 多元线性回归 188
8.6.3 非线性回归 191
8.6.4 回归分析案例及MATLAB实现 194
8.7 聚类分析 214
8.7.1 距离和相似系数 214
8.7.2 系统聚类法 216
8.7.3 K均值聚类法 219
8.7.4 聚类分析的MATLAB函数 219
8.7.5 Q型聚类分析案例 220
8.7.6 R型聚类分析案例 223
8.8 判别分析 225
8.8.1 距离判别 225
8.8.2 贝叶斯判别 226
8.8.3 判别分析的MATLAB函数 227
8.8.4 判别分析案例 227
8.9 主成分分析 229
8.9.1 主成分分析的几何意义 230
8.9.2 总体的主成分 230
8.9.3 样本的主成分 232
8.9.4 主成分分析的MATLAB函数 233
8.9.5 主成分分析案例 233
第9章 常用优化建模方法与MATLAB求解 236
9.1 求解最优化问题的MATLAB函数 236
9.2 线性规划和混合整数线性规划 237
9.2.1 线性规划和混合整数线性规划的标准型 237
9.2.2 linprog和intlinprog函数的用法 238
9.2.3 线性规划和混合整数线性规划的案例 238
9.3 非线性规划 240
9.3.1 无约束的非线性规划 240
9.3.2 有约束的非线性规划 241
9.4 多目标规划 244
9.4.1 最大最小问题 244
9.4.2 多目标达到问题 247
9.5 图与网络优化 249
9.5.1 图与网络的基本概念 249
9.5.2 图的矩阵表示 250
9.5.3 最小生成树 252
9.5.4 最短路 253
9.5.5 最大流 257
9.6 常用智能优化算法 260
9.6.1 遗传算法 260
9.6.2 模拟退火算法 262
9.6.3 粒子群算法 264
9.6.4 蚁群算法 267
第10章 人工神经网络方法 274
10.1 人工神经元模型 274
10.1.1 生物神经元模型 274
10.1.2 人工神经元模型 274
10.2 神经网络的网络结构 275
10.3 神经网络的学习方式与BP算法 276
10.3.1 学习方式 276
10.3.2 BP算法 276
10.4 MATLAB神经网络工具箱常用函数 278
10.5 基于BP网络的数据拟合 279
10.5.1 模型建立 279 10.5.2 模型求解 280
10.6 基于SOM 网络的聚类分析 281
10.6.1 SOM 网络的结构 282
10.6.2 自组织特征映射学习算法 282
10.6.3 主要城市气温模式分类研究 283
10.7 基于BP网络的神经元形态分类与识别 285
10.7.1 问题重述 285
10.7.2 问题分析 285
10.7.3 模型建立 286
10.7.4 模型求解 287
第11章 排队论方法 290
11.1 排队论的基本概念 290
11.1.1 排队系统的组成 290
11.1.2 排队系统的运行指标 291
11.1.3 排队系统的状态及概率 291
11.2 排队系统的概率分布 291
11.2.1 泊松流与泊松分布 291
11.2.2 负指数分布 292
11.2.3 爱尔朗分布 292
11.3 排队模型的标准形式 292
11.4 单服务台的排队模型 293
11.4.1 标准型:M/M/1 293
11.4.2 系统容量有限:M/M/1/N/∞ 296
11.4.3 顾客源有限:M/M/1/∞/m 297
11.4.4 服务时间服从任意分布:M/G/1 298
11.5 多服务台的排队模型 299
11.5.1 标准型:M/M/c 299
11.5.2 系统容量有限:M/M/c/N/∞ 300
11.5.3 顾客源有限:M/M/c/∞/m 301
11.6 常见排队模型的MATLAB求解 302
11.6.1 编写常见排队模型的通用求解函数 302
11.6.2 常见排队模型的求解案例 304
11.7 排队模型的随机模拟 308
11.7.1 随机模拟的原理 308
11.7.2 随机模拟的步骤 308
11.7.3 随机模拟的程序实现 308
第12章 多指标综合评价方法 311
12.1 层次分析法 311
12.1.1 层次分析法的原理与步骤 311
12.1.2 建立层次结构模型 311
12.1.3 构造判断矩阵 312
12.1.4 层次单排序与一致性检验 314
12.1.5 层次总排序与决策 318
12.2 模糊综合评价法 320
12.2.1 模糊综合评价的原理与步骤 320
12.2.2 常用的模糊算子 320
12.2.3 一级模糊综合评价 321
12.2.4 多级模糊综合评价 323
第13章 MATLAB图像处理基础 326
13.1 图像的基本类型 326
13.1.1 索引图像 326
13.1.2 真彩图像 327
13.1.3 灰度图像 327
13.1.4 二值图像 327
13.1.5 图像类型的转换 327
13.2 图像的读写与显示 328
13.3 图像的几何变换与增强 330
13.3.1 图像缩放 330
13.3.2 图像旋转 330
13.3.3 对比度增强 331
13.3.4 直方图均衡 331
13.4 图像去噪 332
13.4.1 锐化滤波 332
13.4.2 中值滤波 333
13.4.3 傅里叶变换低通滤波 333
13.5 图像分割与区域分析 335
13.5.1 阈值分割 335
13.5.2 自适应阈值分割 336
13.5.3 指定灰度值范围进行图像分割 337
13.5.4 手动选取感兴趣区域 337 13.5.5 边缘检测 338
13.5.6 区域分析 339
13.6 建模案例——基于图像资料的数据重建与拟合 340
13.6.1 案例描述 340
13.6.2 重建图像数据 341
13.6.3 曲线拟合 343
第14章 Simulink建模与仿真 345
14.1 Simulink简介 345
14.1.1 何为Simulink 345
14.1.2 Simulink的启动 345
14.1.3 Simulink的模块库 346
14.2 Simulink动态系统建模与仿真 349
14.2.1 我的第一个Simulink模型 349
14.2.2 用Simulink模型解方程 351
14.3 建模案例———猫追老鼠的Simulink动画仿真 352
14.3.1 问题描述 352
14.3.2 建立数学模型 352
14.3.3 建立Simulink模型 353
14.3.4 设置模型求解参数 354
14.3.5 编写动画模拟的S Function 354
14.3.6 模型求解与实时仿真 361
14.3.7 总 结 361
第15章 全国大学生数学建模竞赛真题解析 362
15.1 储油罐的变位识别与罐容表标定(CUMCM 2010A) 362
15.1.1 问题描述 362
15.1.2 问题分析 364
15.1.3 问题一模型建立 364
15.1.4 问题二模型建立 366
15.1.5 问题一模型求解 368
15.1.6 问题二模型求解 370
15.2 创意平板折叠桌(CUMCM 2014B) 375
15.2.1 问题描述 375
15.2.2 问题分析 376
15.2.3 模型假设 377
15.2.4 符号说明 377
15.2.5 问题一模型建立 378
15.2.6 问题二模型建立 380
15.2.7 问题三模型建立 382
15.2.8 问题一模型求解 382
15.2.9 问题二模型求解 386
15.2.10 问题三模型求解 390
15.2.11 折叠桌设计软件 392
参考文献 394