MATLAB以其独特的魅力,改变了传统数学实验与建模的观念,从而成为解决数学实验与建模的有利工具。《MATLAB数学实验与建模(第2版)》以MATLABR2013a为平台,从实用的角度出发,由浅入深地全面介绍大学数学中基本数学实验的内容。全书共分10章,前9章主要介绍了MATLAB数学实验与建模基础知识、MATLAB软件编程基础、MATLAB绘制功能、MATLAB数值分析、MATLAB数学建模、MATLAB方程(组)的求解、MATLAB的优化设计、MATLAB的智能优化算法、MATLAB的Simulink仿真等内容,第10章总结性地介绍了数学实验与建模的实际应用,让读者进一步领略到MATLAB功能的强大及应用范围的广泛。
《MATLAB数学实验与建模(第2版)》主要用作大学“数学实验”和“数学建模”课程的教材,也可以作为广大在校本科生和研究生的学习用书,还可以作为广大科研人员、学者、工程技术人员的参考用书。
MATLAB是当今最优秀的科技应用软件之一,以其强大的科学计算与可视化功能、简单易用、开放式扩展环境,特别是所附带的30多种面向不同领域的工具箱支持,在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。
随着MATLAB版本的不断更新,其功能越来越强,使它在诸如一般数值计算、数字信号处理、系统识别、自动控制、振动理论、时序分析与建模、优化设计、神经网络控制、化学统计学、动态仿真系统、特殊函数和图形领域表现出一般高级语言难以比拟的优势,并可以方便地用于几乎所有的科学和工程计算的各个方面。可以说,MATLAB不仅是一种编程语言,而且在广义上是一种语言开发系统。
数学实验以问题为载体,应用数学知识建立数学模型,以计算机为手段,以数学软件为工具,以学生为主体,通过实验解决实际问题。数学实验是数学模型方法的初步实践,而数学模型方法是用数学模型解决实际问题的一般数学方法,它根据实际问题的特点和要求,做出合理的假设,使问题简化,并进行抽象概括,建立数学模型,然后研究求解所建的数学模型方法与算法,利用数学软件求解数学模型,最后将所得的结果运用到实践中。
“数学实验与建模”课程将经济数学知识、数学建模与计算机应用三者融为一体。通过数学实验课程,可提高学生学习经济数学的积极性,提高学生对数学的应用意识,并培养学生用所学的数学知识、经济学知识和计算机技术去认识问题和解决经济问题的能力。学生自己动手建立模型,能计算并体验解决实际问题的全过程,了解数学软件的使用,也培养了学生的科学态度与创新精神。
近几年来,各高校积极推进计算机基础教育改革,在计算机基础教育的培养目标、课程体系、教学内容、教学方法与手段等方面进行了认真研究和实践,取得了巨大的成绩。随着计算机软件技术的发展,涌现出许多优秀的数学软件,其中MATLAB以功能强、效率高、简单易学等特点,在数学类科技应用软件中及数值计算、数学建模方面首屈一指,避免了传统学习数学实验与建模的繁琐与枯燥。
随着数学实验与建模发展的需要,结合MATLAB的功能特点,我们编写了《MATLAB数学实验与建模(第2版)》,本书具有以下特点。
* 结构合理、内容全面:本书首先介绍了数学实验与建模基础知识、MATLAB软件编程基础等内容,然后逐章介绍了MATLAB在数学实验与建模的具体应用。根据读者的学习习惯和内容的梯度合理安排,更加适合读者学习。
* 由浅入深、详略得当:本书系统地介绍了MATLAB软件编程基础、数值分析、数学建模等内容,着重介绍了怎样利用MATLAB解决数学实验与建模等问题。最后一章还专门给出了一些MATLAB应用实例,使读者做到学以致用。
* 实用性强:书中每介绍一个概念或函数都给出相应的用法及实例进行说明,使读者快速掌握MATLAB及其在数学实验与建模中的应用。
* 图文并茂:对于程序的运行结果,本书给出了大量的图形,图文并茂,具有很强的可读性。
通过本书的学习,读者不仅可以全面掌握MATLAB编程和开发技术,还可以提高快速分析和解决实际问题的能力,从而能够在最短的时间内,以最好的效率解决实际数学建模中遇到的问题,提高工作效率。
全书分为10章,其各章内容概述如下。
第1章:介绍了MATLAB数学实验与建模基础知识,主要包括MATLAB特性与功能、MATLAB工作环境、数学建模等内容。
第2章:介绍了MATLAB软件编程基础,主要包括MATLAB变量、数据类型、矩阵和数组、矩阵与数组的运算、矩阵的分解等内容。
第3章:介绍了MATLAB绘制功能,主要包括MATLAB二维绘图、三维绘图、动画与声音、图形用户界面等内容。
第4章:介绍了MATLAB数值分析,主要包括随机数、统计参数、多项式、数值积分、常微分方程等内容。
第5章:介绍了MATLAB数学建模,主要包括插值、拟合、回归分析、方差分析等内容。
第6章:介绍了MATLAB方程(组)的求解,主要包括线性方程的求解、线性方程组的求解、非线性方程的求解、非线性方程组的求解等内容。
第7章:介绍了MATLAB的优化设计,主要包括线性规划、非线性规划、多目标规划、整数规划、动态规划等内容。
第8章:介绍了MATLAB的智能优化算法,主要包括遗传算法、Boltzmann机网络、模糊智能控制、神经网络等内容。
第9章:介绍了MATLAB的Simulink仿真,主要包括Simulink的基础知识、Simulink模块、子系统的封装技术、S函数等内容。
第10章:介绍了MATLAB数学实验与建模实际应用,主要包括拟合与插值综合应用、粒子运输问题、节水洗衣机等内容。
由于时间仓促,加之作者水平有限,疏漏之处在所难免。在此,诚恳地期望得到各领域的专家和广大读者的批评指正。
编者
第1章 MATLAB数学实验与建模基础知识1
1.1 MATLAB概述1
1.1.1 MATLAB的发展史1
1.1.2 MATLAB R2013的新特性3
1.1.3 MATLAB的特点3
1.1.4 MATLAB的应用5
1.2 MATLAB安装、启动、退出及卸载6
1.2.1 MATLAB安装6
1.2.2 MATLAB启动和退出11
1.2.3 MATLAB卸载11
1.3 MATLAB工作环境12
1.3.1 命令窗口12
1.3.2 工作空间窗口14
1.3.3 命令历史窗口15
1.4 MATLAB帮助系统16
1.4.1 帮助浏览器17
1.4.2 命令帮助系统18
1.5 数学建模20
1.5.1 建模背景20
1.5.2 建模过程21
1.5.3 建模意义21
1.5.4 数学建模的应用22
第2章 MATLAB软件编程基础23
2.1 MATLAB变量23
2.1.1 特殊变量23
2.1.2 局部变量25
2.1.3 全局变量25
2.1.4 永久变量26
2.2 MATLAB数据类型26
2.2.1 双精度型26
2.2.2 浮点型28
2.2.3 字符型29
2.2.4 复数型29
2.2.5 逻辑类型30
2.2.6 关系运算33
2.2.7 元胞数组34
2.2.8 结构数组35
2.3 矩阵与数组37
2.3.1 矩阵与数组的概念37
2.3.2 矩阵与数组的创建37
2.3.3 矩阵与数组的简单运算39
2.3.4 矩阵与数组的代数运算46
2.4 矩阵的特殊运算48
2.4.1 行列式运算48
2.4.2 逆运算49
2.4.3 矩阵的秩运算50
2.4.4 矩阵的特征值50
2.4.5 矩阵的条件数51
2.5 矩阵的分解52
2.5.1 三角分解52
2.5.2 正交分解53
2.5.3 Cholesky分解54
2.5.4 奇异值分解55
2.5.5 Schur分解56
2.6 MATLAB程序结构57
2.6.1 顺序结构57
2.6.2 选择结构58
2.6.3 循环结构61
2.6.4 break与continue语句63
2.6.5 错误控制结构63
2.7 M文件64
2.7.1 主程序文件结构64
2.7.2 主程序文件的运行方式65
2.7.3 函数文件结构66
第3章 MATLAB绘制功能70
3.1 基本绘图处理70
3.1.1 基本函数70
3.1.2 图形修饰77
3.2 特殊二维图形81
3.3 三维图形85
3.3.1 三维基本绘图86
3.3.2 标准三维曲面图90
3.3.3 其他特殊三维图形92
3.4 三维图形视角设置93
3.4.1 视角的定义93
3.4.2 视点转换矩阵95
3.5 动画与声音96
3.6 图形用户界面100
3.6.1 GUI层次结构100
3.6.2 GUIDE设计工具101
3.6.3 用户接口对象107
3.6.4 对话框111
第4章 MATLAB数值分析121
4.1 随机数121
4.1.1 几何分布随机数121
4.1.2 Beta分布随机数122
4.1.3 正态分布随机数122
4.1.4 二项分布随机数123
4.1.5 分布随机数124
4.1.6 指数分布随机数125
4.1.7 F分布随机数126
4.1.8 分布随机数127
4.1.9 超几何分布随机数128
4.1.10 对数正态分布随机数128
4.1.11 泊松分布随机数129
4.1.12 瑞利分布随机数130
4.1.13 t分布随机数130
4.2 统计参数131
4.2.1 数学期望与均值131
4.2.2 方差与标准差133
4.2.3 最值与极差134
4.2.4 中位数与分位数135
4.2.5 求和与求积136
4.2.6 累积与累和137
4.2.7 协方差与相关系数138
4.2.8 偏斜度和峰度139
4.3 多项式140
4.3.1 多项式的创建140
4.3.2 矩阵的特征多项式140
4.3.3 多项式四则运算141
4.3.4 多项式微分142
4.3.5 多项式求值143
4.3.6 多项式求根144
4.3.7 有理多项式144
4.4 极限145
4.5 数值积分147
4.5.1 由给定的数据进行梯形求积147
4.5.2 单变量数值积分148
4.5.3 双重积分151
4.5.4 三重积分152
4.6 常微分方程152
4.6.1 微分方程算法概述152
4.6.2 常微分方程的MATLAB函数153
4.6.3 延迟微分方程求解160
4.7 偏微分方程162
4.7.1 求解偏微分方程组162
4.7.2 网格化164
4.7.3 求解二阶偏微分方程166
4.8 距离分析174
4.8.1 向量的距离与夹角余弦174
4.8.2 数据的属性与处理方法177
第5章 MATLAB数学建模183
5.1 插值183
5.1.1 一维插值183
5.1.2 二维插值187
5.1.3 高维插值190
5.1.4 样条插值192
5.1.5 拉格朗日插值193
5.1.6 牛顿插值195
5.1.7 Hermite插值197
5.2 拟合199
5.2.1 多项式拟合199
5.2.2 非线性最小二乘拟合200
5.2.3 加权最小方差拟合202
5.2.4 函数线性组合的曲线拟合204
5.3 回归分析206
5.3.1 线性回归分析206
5.3.2 非线性回归分析214
5.4 方差分析218
5.4.1 单因素方差分析218
5.4.2 双因素方差分析220
5.4.3 多因素方差分析222
5.5 异常数据的处理224
第6章 MATLAB方程(组)的求解226
6.1 线性方程的求解226
6.1.1 二分法226
6.1.2 弦截法228
6.1.3 不动点迭代法229
6.1.4 牛顿迭代法230
6.2 线性方程组的求解231
6.2.1 不动点法231
6.2.2 高斯消去法233
6.2.3 逐次超松弛迭代法240
6.2.4 雅克比迭代法242
6.3 求逆法解线性方程组245
6.4 矩阵分解法求解线性方程组247
6.4.1 LU分解求解线性方程组247
6.4.2 QR分解求解线性方程组249
6.4.3 Cholesky分解求解线性方程组251
6.5 矩阵方程的计算求解252
6.5.1 Lyapunov方程的计算求解252
6.5.2 Sylvester方程的计算求解255
6.5.3 Riccati方程的计算求解257
6.6 非线性方程的求解258
6.6.1 二分法258
6.6.2 迭代法260
6.6.3 斯蒂芬森加速迭代法262
6.6.4 牛顿迭代法264
6.7 非线性方程组的求解265
6.7.1 迭代法266
6.7.2 牛顿迭代法268
6.7.3 最速下降法270
6.7.4 共轭梯度法272
6.8 面向矩阵元素的非线性运算与矩阵函数求值275
6.8.1 面向矩阵元素的非线性运算275
6.8.2 矩阵函数求值276
第7章 MATLAB的优化设计283
7.1 运筹优化概述283
7.2 线性规划286
7.2.1 无约束最优化286
7.2.2 有约束最优化293
7.2.3 线性规划的实际应用298
7.3 非线性规划302
7.3.1 非线性规划的数学模型302
7.3.2 非线性规划的MATLAB实现302
7.3.3 非线性的二次型规划的求解307
7.4 多目标规划309
7.4.1 多目标规划概述309
7.4.2 多目标规划的MATLAB实现310
7.5 最小化问题312
7.5.1 单变量最小化问题312
7.5.2 最大最小化问题315
7.5.3 最小二乘问题318
7.6 半无限约束优化322
7.7 整数规划324
7.7.1 整数线性规划基本理论324
7.7.2 整数线性规划的MATLAB实现326
7.7.3 0-1型整数线性规划基本理论328
7.7.4 0-1型线性规划的MATLAB实现329
7.7.5 指派问题332
7.8 动态规划335
7.8.1 动态规划的基本理论335
7.8.2 动态规划逆算法的MATLAB实现340
7.8.3 动态规划的实际应用342
7.9 图与网络优化347
7.9.1 图与网络的基本知识347
7.9.2 Kruskal与Dijkstra算法的MATLAB实现349
第8章 MATLAB的智能优化算法352
8.1 遗传算法352
8.1.1 遗传算法的基本概念和原理352
8.1.2 MATLAB遗传算法工具箱介绍355
8.1.3 MATLAB直接搜索工具箱370
8.1.4 遗传算法的应用373
8.2 Boltzmann机网络377
8.2.1 BM网络结构377
8.2.2 BM网络规则378
8.2.3 用BM网络求解TSP381
8.2.4 Boltzmann机网络的MATLAB实现382
8.3 模糊智能控制384
8.3.1 PID控制器384
8.3.2 模糊控制系统的实际应用385
8.4 神经网络389
8.4.1 生物神经元的结构与功能特点389
8.4.2 人工神经元模型390
8.4.3 神经网络的结构及工作方式392
8.4.4 神经元的数学模型393
8.4.5 神经元的网络模型394
8.4.6 神经网络的学习394
8.4.7 神经网络的MATLAB实现396
8.5 粒子群计算试验398
第9章 MATLAB的Simulink仿真402
9.1 Simulink的基础知识402
9.1.1 Simulink的特点402
9.1.2 Simulink的功能403
9.1.3 Simulink的应用领域403
9.2 Simulink的启动403
9.3 Simulink模块405
9.3.1 常用模块405
9.3.2 连续模块405
9.3.3 非连续模块406
9.3.4 离散模块407
9.3.5 逻辑与位操作模块408
9.3.6 查找表模块409
9.3.7 数学模块410
9.3.8 模型检测模块411
9.3.9 模型扩充模块412
9.3.10 端口与子系统模块412
9.3.11 信号属性模块414
9.3.12 信号路线模块414
9.3.13 接收器模块415
9.3.14 输入源模块416
9.3.15 用户自定义函数模块417
9.4 一个简单的Simulink实例418
9.5 子系统的封装技术422
9.5.1 传递函数422
9.5.2 微分方程424
9.5.3 二阶微分方程425
9.6 Simulink子系统427
9.6.1 子系统介绍428
9.6.2 子系统封装430
9.6.3 条件子系统433
9.7 S函数437
9.7.1 S函数概述437
9.7.2 S函数的工作原理438
9.7.3 S函数的模板438
第10章 MATLAB数学实验与建模实际应用443
10.1 拟合与插值综合应用443
10.2 粒子运输问题445
10.3 绘制帐篷447
10.4 节水洗衣机449
10.4.1 问题及分析449
10.4.2 模型建立与求解450
10.5 凸轮设计和人口预测454
10.6 图与网络优化应用457
10.7 美丽的分形图形460
10.8 数学建模的综合应用461
参考文献465