本书是作者结合多年MATLAB与LINGO教学实践编写的。其内容分为三大部分:第1~6章为MATLAB的基础知识,对MATLAB基础进行了简单介绍;第7~15章为本书的核心部分,包括数据插值、曲线拟合、数值积分计算、非线性方程求解、常微分方程求解、概率统计计算、偏微分方程求解、MATLAB最优化计算及LINGO软件的基本用法等内容;第16章为实践部分,以历年全国大学生数学建模竞赛试题为例,将前文介绍的程序设计思想应用其中。
样章试读
目录
- 目录
第1章 MATLAB概述 1
1.1 MATLAB的产生与发展 1
1.2 MATLAB的主要特点 2
1.2.1 强大的科学计算能力 2
1.2.2 数据可视化功能 2
1.2.3 简单易用的编程语言 3
1.2.4 良好的编程环境 3
1.2.5 实用的程序接口 3
1.3 MATLAB进行科学计算的优势 4
1.4 MATLAB系统的构成 4
1.5 MATLAB的工具箱 5
1.6 MATLAB桌面操作环境 5
1.6.1 MATLAB的操作界面 5
1.6.2 MATLAB的搜索路径 9
1.6.3 MATLAB的帮助功能 10
练习1 12
第2章 MATLAB基本运算 13
2.1 MATLAB数据类型 13
2.1.1 数据类型概述 13
2.1.2 变量和常量 13
2.1.3 数值型数据 14
2.1.4 字符型数据 16
2.1.5 元胞数组 16
2.1.6 结构体 17
2.1.7 数据类型间的转换 18
2.2 向量运算 18
2.2.1 向量的生成 18
2.2.2 向量的加减和数乘运算 20
2.2.3 向量的点、叉积运算 20
2.3 矩阵运算 21
2.3.1 矩阵的生成 21
2.3.2 矩阵的加减运算 22
2.3.3 矩阵的乘法运算 23
2.3.4 矩阵的除法运算 23
2.4 点运算 24
2.5 关系运算和逻辑运算 25
2.5.1 关系运算 25
2.5.2 逻辑运算 26
2.5.3 常用函数 26
练习2 27
第3章 MATLAB数据绘图 28
3.1 MATLAB绘图的基本步骤 28
3.2 二维曲线的绘制 28
3.2.1 plot函数 28
3.2.2 函数绘图 30
3.3 三维图形的绘制 31
3.3.1 三维曲线绘图 31
3.3.2 三维曲面绘图 32
3.3.3 等高线图 34
3.3.4 视点 34
3.4 图形修饰处理 36
3.4.1 颜色与线型 36
3.4.2 图形修饰 37
练习3 40
第4章 符号计算 41
4.1 符号计算的基本操作 41
4.1.1 符号对象 41
4.1.2 创建符号对象 41
4.2 常用的符号对象操作命令 42
4.2.1 对象类型判定函数 class 的使用 42
4.2.2 符号变量代换函数 42
4.2.3 符号对象转换为数值或字符的函数 43
4.2.4 符号表达式的化简与显示美化 43
4.3 符号微积分运算 44
4.3.1 极限运算 44
4.3.2 求导运算 45
4.3.3 积分运算 45
4.3.4 级数求和运算 46
4.3.5 泰勒级数展开 46
4.4 符号方程求解 47
4.4.1 代数方程求解 47
4.4.2 微分方程求解 47
4.5 符号积分变换 48
4.5.1 傅里叶变换及其逆变换 48
4.5.2 拉普拉斯变换及其逆变换 48
练习4 49
第5章 MATLAB程序设计 51
5.1 MATLAB编程概述 51
5.2 M 文件与匿名函数 51
5.2.1 M文件的建立与打开 51
5.2.2 M文件的分类 52
5.2.3 内联函数和匿名函数 53
5.3 MATLAB程序控制结构 54
5.3.1 顺序结构 54
5.3.2 选择结构 56
5.3.3 循环结构 58
5.4 MATLAB的函数调用 61
5.4.1 函数调用 61
5.4.2 参数传递 62
5.4.3 函数参数的可调性 63
5.5 MATLAB编程技巧 63
5.5.1 MATLAB编程原则 63
5.5.2 MATLAB编程规范 64
5.5.3 程序优化 64
练习5 66
第6章 MATLAB文件读写操作 67
6.1 对文件或文件夹的操作 67
6.1.1 文件的打开与关闭 67
6.1.2 利用导入工具导入数据 68
6.2 MAT文件的读写操作 70
6.2.1 MAT文件数据导入 70
6.2.2 数据以MAT文件形式的存储 71
6.3 MATLAB常见读写命令 72
6.3.1 读取和写入表 72
6.3.2 读取和写入矩阵 77
6.3.3 读取和写入元胞数组 80
6.4 在 MATLAB中读写操作图形和视频文件 85
6.4.1 从图形文件中读取图形 85
6.4.2 将图像写入图形文件 86
6.4.3 从视频文件中读取图形 86
6.4.4 将视频写入视频文件 90
练习6 91
第7章 数据插值 92
7.1 一维数据插值 92
7.1.1 分段多项式插值 92
7.1.2 三次样条插值 93
7.2 二维数据插值 94
7.2.1 网格节点插值 94
7.2.2 散乱数据插值 95
7.3 利用MATLAB软件进行插值计算 96
7.3.1 一维插值 96
7.3.2 高维插值 97
7.3.3 散点数据的插值 98
7.4 插值计算应用举例 98
练习7 101
第8章 曲线拟合 103
8.1 拟合问题基本理论 103
8.1.1 最小二乘法的基本原理 103
8.1.2 多项式拟合 104
8.1.3 曲线拟合的最小二乘法 104
8.1.4 超定方程组的最小二乘解 104
8.1.5 可化为线性拟合的非线性拟合 104
8.2 用 MATLAB求解拟合问题 106
8.2.1 用 MATLAB作曲线拟合 106
8.2.2 用 MATLAB作线性最小二乘拟合 106
8.2.3 用 MATLAB作非线性最小二乘拟合 106
8.3 拟合问题应用举例:估计水塔的流量 109
练习8 111
第9章 数值积分的计算 113
9.1 数值积分问题 113
9.2 数值积分方法 113
9.2.1 数值积分的基本思路 113
9.2.2 梯形公式与辛普森公式 113
9.3 MATLAB中的数值积分函数 115
9.4 数值积分的计算实例 116
练习9 122
第10章 非线性方程求解 124
10.1 MATLAB中非线性方程求根函数 124
10.1.1 多项式方程求根 124
10.1.2 非线性方程的符号解法 124
10.1.3 求根的数值算法 125
10.2 非线性方程求根的其他数值方法 126
10.2.1 二分法 126
10.2.2 迭代法原理 127
10.2.3 牛顿法 129
10.2.4 弦截法 130
10.3 非线性方程求根应用举例 132
练习10 135
第11章 常微分方程求解 136
11.1 MATLAB中的常微分方程的符号解法 136
11.2 欧拉法 136
11.2.1 常见的欧拉公式 136
11.2.2 误差和阶 138
11.3 龙格-库塔法 139
11.4 MATLAB常微分方程数值解 140
11.5 常微分方程求解综合举例 142
练习11 147
第12章 概率统计的计算 149
12.1 MATLAB统计工具箱介绍 149
12.2 随机变量的数字特征 149
12.2.1 样本均值 149
12.2.2 样本方差和标准差 150
12.2.3 协方差矩阵和相关系数矩阵 150
12.2.4 常用高阶统计量 151
12.3 常见分布的概率计算 151
12.3.1 伪随机数生成 151
12.3.2 概率密度与累积分布 153
12.3.3 通用格式 154
12.4 参数估计 155
12.5 假设检验 156
12.5.1 分布的假设检验 156
12.5.2 参数的假设检验 157
12.6 回归分析 158
12.6.1 多元线性回归 158
12.6.2 多项式回归 159
12.6.3 非线性回归 160
12.7 统计图绘制 161
12.8 统计工具箱应用举例 163
练习12 169
第13章 偏微分方程求解 171
13.1 偏微分方程概述 171
13.1.1 椭圆型方程 171
13.1.2 抛物型方程 172
13.1.3 双曲型方程 172
13.2 偏微分方程的差分解法 173
13.2.1 椭圆型方程第一边值问题的差分解法 173
13.2.2 抛物型方程的差分解法 174
13.2.3 双曲型方程的差分解法 175
13.3 MATLAB偏微分方程数值解 176
13.4 偏微分方程求解应用举例 177
练习13 186
第14章 MATLAB最优化计算 188
14.1 无约束最优化 188
14.1.1 信赖域法 189
14.1.2 牛顿法 190
14.2 约束最优化 191
14.2.1 拉格朗日乘子法 191
14.2.2 罚函数法 192
14.3 MATLAB内置最优化函数 192
14.4 最优化问题应用综合举例 194
练习14 198
第15章 LINGO软件的基本用法 200
15.1 LINGO软件入门 200
15.1.1 LINGO概况 200
15.1.2 LINGO语言的优点 201
15.1.3 LINGO的基本操作 201
15.1.4 LINGO模型的语法规定 202
15.2 LINGO 模型构成 203
15.2.1 LINGO模型的基本要素 203
15.2.2 LINGO的集合定义 203
15.2.3 LINGO模型的数据段 206
15.2.4 LINGO模型的初始段 207
15.2.5 LINGO模型的目标与约束段 208
15.3 LINGO的菜单 212
15.3.1 文件(File)菜单 212
15.3.2 编辑(Edit)菜单 213
15.3.3 LINGO 菜单 215
15.3.4 窗口(Window)菜单 216
15.3.5 帮助(Help)菜单 219
15.4 LINGO 的参数设置 219
15.4.1 Interface(界面)选项卡 220
15.4.2 General Solver(通用求解器)选项卡 221
15.4.3 Linear Solver(线性求解器)选项卡 222
15.4.4 Nonlinear Solver(非线性求解器)选项卡 223
15.4.5 Integer Pre-Solver(整数预处理求解器)选项卡 223
15.4.6 Integer Solver(整数求解器)选项卡 224
15.4.7 Global Solver(全局最优求解器)选项卡 225
15.4.8 Model Generator(模型生成器)选项卡 226
15.5 LINGO 的运算符和函数 227
15.5.1 LINGO的常用运算符 227
15.5.2 数学函数 228
15.5.3 概率函数 229
15.5.4 集合操作函数 230
15.5.5 变量定界函数 231
15.5.6 文件输入输出函数 233
15.5.7 其他函数 233
15.6 LINGO与外部文件之间的数据传递 235
15.6.1 通过Windows剪贴板传递数据 235
15.6.2 LINGO与文本文件之间的数据传递 236
15.6.3 LINGO与Excel文件之间的数据传递 239
15.7 LINGO 软件的典型应用举例 243
15.7.1 下料问题 243
15.7.2 配料问题 246
15.7.3 指派问题 247
15.7.4 装箱问题 249
15.7.5 选址问题 250
练习15 252
第16章 程序设计综合应用实例 256
16.1 水道测量数据 256
16.1.1 问题的描述 256
16.1.2 问题的分析与模型的建立 256
16.1.3 问题的求解及编程实现 258
16.2 钢管订购和运输 263
16.2.1 问题的描述 263
16.2.2 问题的分析与数据准备 264
16.2.3 问题—模型的建立与求解 268
16.2.4 销价与产量上限的灵敏度分析 271
16.2.5 管道为树形图时的模型与求解 272
16.3 血管的三维重建 273
16.3.1 问题的描述 273
16.3.2 问题的分析与模型的建立 274
16.3.3 问题的求解及编程实现 276
16.4 中国人口增长预测 286
16.4.1 问题的描述 286
16.4.2 问题的分析与模型假设 287
16.4.3 模型的建立 288
16.4.4 模型的求解及编程实现 292
16.5 乘公交,看奥运 302
16.5.1 问题的描述 302
16.5.2 问题的分析与模型假设 303
16.5.3 数据准备 303
16.5.4 问题 1 的模型一建立 305
16.5.5 问题 1 的模型二建立 307
16.5.6 模型一的求解及编程实现 308
16.5.7 模型二的求解及编程实现 310
16.6 眼科病床的合理安排 314
16.6.1 问题的描述 314
16.6.2 问题的分析与模型的建立 315
16.6.3 问题的求解及编程实现 319
16.7 车道被占用对城市道路通行能力的影响 323
16.7.1 问题的描述 323
16.7.2 问题的分析与模型的建立 325
16.7.3 问题的求解及编程实现 326
16.8 碎纸片的拼接复原 329
16.8.1 问题的描述 329
16.8.2 问题的分析与模型的建立 330
16.8.3 仅纵切情形的求解及编程实现 332
16.8.4 有横切情形的求解及编程实现 335
参考文献 340