第1章 MATLAB简介 1
1.1 MATLAB的主要特点 1
1.2 MATLAB桌面简介 2
1.2.1 启动按钮 2
1.2.2 命令窗口 3
1.2.3 命令历史窗口 4
1.2.4 工作空间窗口 4
1.2.5 当前目录浏览器 6
1.3 MATLAB的帮助系统 6
1.3.1 帮助浏览器 6
1.3.2 help函数和doc函数 7
1.4 本章小结 7
习题与思考 7
第2章 数据类型 8
2.1 常数和变量 8
2.1.1 常数 8
2.1.2 变量 9
2.1.3 变量的数据类型 10
2.2 非double型数据类型 11
2.2.1 整型数据类型 11
2.2.2 单精度浮点型数据类型 12
2.3 数组和矩阵 13
2.3.1 数组 13
2.3.2 矩阵 15
2.4 字符串 22
2.4.1 创建字符串 22
2.4.2 创建二维字符串 23
2.4.3 类型转换 23
2.4.4 比较字符串 24
2.4.5 聚合字符串 25
2.4.6 字符分类 26
2.4.7 搜索和替换 26
2.5 多维数组 27
2.5.1 用索引生成多维数组 27
2.5.2 用MATLAB函数生成多维数组 27
2.5.3 用cat函数生成多维数组 28
2.6 结构 28
2.6.1 创建结构数组 28
2.6.2 在结构数组中获取数据 29
2.6.3 结构数组的大小 30
2.6.4 操作字段 30
2.6.5 结构嵌套 31
2.7 单元数组 31
2.7.1 创建单元数组 31
2.7.2 从单元数组中获取数据 32
2.7.3 删除单元和重塑单元数组 33
2.7.4 采用函数和运算符 33
2.7.5 在单元数组中组织数据 34
2.7.6 单元数组嵌套 34
2.7.7 在单元和数值数组之间转换 35
2.7.8 字符串单元数组 35
2.7.9 结构单元数组 36
2.7.10 多维单元数组 36
2.8 函数句柄 37
2.9 本章小结 37
习题与思考 37
第3章 M文件设计 38
3.1 变量 38
3.1.1 变量的作用范围 38
3.1.2 变量的存活期 39
3.2 表达式 39
3.2.1 数值表示 39
3.2.2 运算符 39
3.2.3 处理字符串表达式 41
3.3 流程控制 41
3.3.1 条件控制 41
3.3.2 循环控制 43
3.3.3 错误控制 44
3.3.4 程序终止控制 44
3.4 函数 44
3.4.1 主函数 44
3.4.2 子函数 45
3.4.3 匿名函数 46
3.4.4 嵌套函数 46
3.4.5 私有函数 47
3.4.6 重载函数 47
3.5 M文件 47
3.5.1 脚本式M文件和函数式M文件 48
3.5.2 M文件的基本结构 49
3.5.3 创建帮助 50
3.5.4 函数的参数 50
3.5.5 函数句柄 53
3.6 程序调试和错误处理 56
3.6.1 用try-catch语句检查错误 56
3.6.2 错误和警告信息 56
3.6.3 用“Debug”菜单进行调试 57
3.7 编程技巧 57
3.7.1 矢量化 57
3.7.2 预分配内存空间 57
3.8 本章小结 58
习题与思考 58
第4章 高等数学计算 59
4.1 函数和极限 59
4.1.1 函数 59
4.1.2 极限 60
4.2 导数和微分 61
4.3 极限和导数的应用 61
4.3.1 渐近线 62
4.3.2 极值 63
4.3.3 拐点 64
4.4 不定积分和定积分 65
4.4.1 不定积分 66
4.4.2 定积分 66
4.5 多元函数的极限和求导 67
4.5.1 求多元函数的极限 67
4.5.2 求多元函数的导数 67
4.6 级数 68
4.6.1 级数求和 68
4.6.2 泰勒级数展开 68
4.7 微分方程 69
4.8 本章小结 70
习题与思考 70
第5章 线性代数 71
5.1 矩阵分析 71
5.1.1 矩阵行列式 71
5.1.2 矩阵的四则运算 71
5.1.3 矩阵的幂和平方根 72
5.1.4 矩阵的指数和对数 73
5.1.5 矩阵的翻转 73
5.1.6 矩阵的逆运算 74
5.1.7 矩阵的迹 74
5.1.8 矩阵的范数 74
5.1.9 矩阵的条件数 75
5.1.10 矩阵的重塑 75
5.1.11 矩阵的逻辑运算 76
5.1.12 矩阵的初等变换 76
5.1.13 矩阵的秩 77
5.2 矩阵的分解 77
5.2.1 矩阵的LU分解 77
5.2.2 矩阵的QR分解 77
5.2.3 矩阵的QZ分解 78
5.2.4 矩阵的乔累斯基分解 79
5.2.5 矩阵的奇异值分解 79
5.2.6 矩阵的特征值分解 80
5.2.7 矩阵的Schur分解 81
5.3 线性方程组的求解 81
5.3.1 方形系统 82
5.3.2 超定系统 83
5.3.3 不定系统 84
5.4 矩阵的特征值和特征矢量 85
5.5 符号矩阵 85
5.5.1 符号矩阵的四则运算 85
5.5.2 符号矩阵的其他运算 86
5.5.3 符号代数线性方程(组)的求解 88
5.6 稀疏矩阵 89
5.6.1 创建稀疏矩阵 90
5.6.2 稀疏矩阵运算 91
5.7 本章小结 91
习题与思考 92
第6章 计算方法 93
6.1 一元非线性方程求解 93
6.1.1 fzero函数 93
6.1.2 roots函数 94
6.2 线性方程组的数值解法 94
6.2.1 基于矩阵变换的直接解法 94
6.2.2 Jocabi迭代法 94
6.2.3 Gauss-Seidel迭代法 95
6.2.4 SOR(超松弛)迭代法 96
6.3 非线性方程组的数值解法 97
6.3.1 不动点迭代法 97
6.3.2 Newton迭代法 98
6.3.3 拟Newton法 99
6.4 插值 102
6.4.1 一维插值 102
6.4.2 二维插值 103
6.4.3 多维插值 105
6.4.4 Lagrange插值 106
6.4.5 Newton插值 107
6.5 曲线拟合 108
6.5.1 最小二乘法 109
6.5.2 多项式曲线拟合 109
6.5.3 相关工具 110
6.6 数值微分 115
6.6.1 数值微分运算 115
6.6.2 数值梯度运算 115
6.6.3 中心差分 116
6.7 数值积分 117
6.7.1 梯形求积 117
6.7.2 Simpson求积 118
6.7.3 Lobatto求积 118
6.7.4 Gauss求积 119
6.7.5 Romberg求积 120
6.7.6 二重积分 121
6.7.7 三重积分 121
6.8 常微分方程的数值解 122
6.8.1 显式和线性隐式初值常微分方程问题求解 122
6.8.2 完全隐式初值常微分方程问题求解 125
6.8.3 边界值常微分方程问题求解 126
6.8.4 改进的Euler法 128
6.8.5 线性多步法 129
6.9 本章小结 131
习题与思考 131
第7章 概率论与数理统计 132
7.1 概率论 132
7.1.1 分布律和概率密度函数 132
7.1.2 分布函数 133
7.1.3 随机变量的数字特征 135
7.2 样本描述 136
7.2.1 集中趋势 137
7.2.2 离中趋势 139
7.3 参数估计 140
7.3.1 点估计 141
7.3.2 区间估计 141
7.3.3 常见分布的参数估计 142
7.4 假设检验 143
7.4.1 单个正态总体均值的假设检验 144
7.4.2 两个正态总体均值差的检验 144
7.4.3 基于成对数据的检验 145
7.4.4 分布拟合检验 146
7.5 方差分析 148
7.5.1 单因子方差分析 148
7.5.2 双因子方差分析 150
7.6 本章小结 153
习题与思考 153
第8章 最优化方法 155
8.1 一维搜索问题 155
8.1.1 基本数学原理 155
8.1.2 有关函数介绍 155
8.1.3 应用实例 156
8.2 线性规划 156
8.2.1 基本数学原理 156
8.2.2 有关函数介绍 157
8.2.3 应用实例 157
8.3 无约束非线性最优化问题 158
8.3.1 基本数学原理 159
8.3.2 有关函数介绍 159
8.3.3 应用实例 160
8.4 有约束非线性最优化问题 161
8.4.1 基本数学原理 161
8.4.2 相关函数介绍 161
8.4.3 应用实例 163
8.5 本章小结 165
习题与思考 165
第9章 偏微分方程数值解 166
9.1 一维偏微分方程的求解 166
9.1.1 一维偏微分方程的一般形式 166
9.1.2 一维偏微分方程求解器 166
9.1.3 求解一维偏微分方程 168
9.2 二维偏微分方程的求解 170
9.2.1 有限元法 170
9.2.2 椭圆型问题 170
9.2.3 抛物型问题 172
9.2.4 双曲型问题 173
9.2.5 特征值问题 174
9.2.6 非线性问题 176
9.3 用GUI求解偏微分方程 177
9.3.1 求解偏微分方程的GUI简介 177
9.3.2 前处理 178
9.3.3 PDE计算 180
9.3.4 后处理 181
9.4 本章小结 182
习题与思考 182
第10章 绘制图形 183
10.1 绘制二维图形 183
10.1.1 线形图、条形图和面积图 183
10.1.2 饼图 183
10.1.3 误差条图 184
10.1.4 散点图 185
10.1.5 直方图 185
10.1.6 对数坐标图和半对数坐标图 186
10.1.7 多轴图 187
10.1.8 极坐标图 188
10.1.9 帕累托图 188
10.1.10 火柴杆图 189
10.1.11 阶梯图 190
10.1.12 玫瑰花图 191
10.1.13 函数的图形 191
10.1.14 动画 192
10.2 绘制三维图形 195
10.2.1 用给定数据绘三维线形图 195
10.2.2 用给定数据绘三维表面图 196
10.2.3 表面图绘制的数据格式问题 200
10.2.4 函数的曲线和曲面 203
10.2.5 二次曲面 206
10.2.6 样条曲线和曲面 208
10.2.7 多边形对象模型 209
10.2.8 消隐控制 211
10.2.9 三维图形的场景效果设置 212
10.3 交互绘图 212
10.3.1 添加子图坐标系 213
10.3.2 指定变量绘图 213
10.3.3 给图形添加标注 214
10.4 本章小结 214
习题与思考 215
第11章 图形编辑 216
11.1 使用图形编辑模式 216
11.1.1 启用和退出绘图编辑模式 217
11.1.2 对象的选择 217
11.1.3 对象的剪切、复制和粘帖 217
11.1.4 对象的平移和缩放 217
11.1.5 设置对象的属性 218
11.2 数据探察工具 219
11.2.1 数据光标 219
11.2.2 缩放图形 221
11.2.3 平移图形 222
11.2.4 三维视图的交互旋转 223
11.3 标注图形 224
11.3.1 如何标注图形 224
11.3.2 对齐工具 229
11.3.3 添加标题 231
11.3.4 添加坐标系标签 232
11.3.5 添加文本标注 234
11.4 本章小结 235
习题与思考 235
第12章 科学计算可视化 236
12.1 等值线图 236
12.1.1 二维等值线图 236
12.1.2 三维等值线图 238
12.2 矢量图 239
12.2.1 二维矢量图 239
12.2.2 三维矢量图 240
12.3 剖面图 240
12.3.1 slice函数 240
12.3.2 剖面等值线图 242
12.3.3 剖面流线图 243
12.4 表现矢量特征 245
12.4.1 流线图 245
12.4.2 流锥图 246
12.4.3 流沙图 249
12.4.4 流带图 251
12.4.5 流管图 252
12.4.6 卷曲图 252
12.5 等值面 254
12.5.1 创建等值面 254
12.5.2 计算顶点法向 255
12.5.3 计算等值面的颜色 256
12.5.4 三维数据的平滑 257
12.6 等帽盖 258
12.7 本章小结 259
习题与思考 259
第13章 计算几何 260
13.1 点与多边形的包含关系 260
13.2 矩形的集合运算 261
13.3 凸包 262
13.3.1 二维点集的凸包 262
13.3.2 N维点集的凸包 262
13.4 Delaunay剖分 263
13.4.1 二维Delaunay剖分 263
13.4.2 三维Delaunay剖分 265
13.4.3 N维Delaunay剖分 266
13.5 Voronoi图 267
13.5.1 二维Voronoi图 267
13.5.2 N维Voronoi图 269
13.6 最近邻搜索 270
13.6.1 最近点搜索 270
13.6.2 最近单形体搜索 271
13.7 综合实例 271
13.7.1 散点数据的三角化和插值 271
13.7.2 高维散点集的剖分和插值 274
13.8 本章小结 279
习题与思考 279
第14章 图形用户界面(GUI)设计 280
14.1 图形用户界面开发环境(GUIDE) 280
14.1.1 启动GUIDE 280
14.1.2 输出编辑器 280
14.1.3 GUIDE模板 281
14.1.4 菜单编辑器 281
14.1.5 对象属性查看器 282
14.1.6 位置调整工具 283
14.1.7 对象浏览器 283
14.1.8 Tab顺序编辑器 283
14.1.9 运行GUI 284
14.1.10 GUI FIG文件和M文件 284
14.2 菜单 285
14.2.1 创建菜单 285
14.2.2 菜单属性 287
14.3 控件 291
14.3.1 控件对象类型 292
14.3.2 创建控件 294
14.3.3 控件属性 295
14.3.4 设置控件属性 301
14.3.5 工具栏 302
14.4 对话框 304
14.4.1 公共对话框 304
14.4.2 一般对话框 310
14.5 GUI设计实例 316
14.5.1 设计GUI 316
14.5.2 完成GUI 317
14.5.3 设置GUI控件的属性 320
14.5.4 GUI编程 322
14.5.5 保存和运行GUI 326
14.6 本章小结 327
习题与思考 327
第15章 文件操作 328
15.1 文件的打开、保存和关闭 328
15.1.1 打开文件 328
15.1.2 保存数据到文件 329
15.1.3 关闭文件 330
15.2 读写文本文件 330
15.2.1 使用load函数 330
15.2.2 读写值用逗号间隔的文本文件 331
15.2.3 读写文本文件时指定间隔方式 332
15.3 读写二进制数据文件 332
15.3.1 以二进制读取数据 333
15.3.2 将二进制数据写入文件 333
15.4 使用ImportWizard工具 334
15.5 本章小结 334
习题与思考 334
第16章 编译和接口 335
16.1 MATLAB编译器 335
16.1.1 MATLAB编译器简介 335
16.1.2 编译独立应用程序 336
16.2 MATLAB与Visual Basic接口 338
16.2.1 COM生成器简介 338
16.2.2 用COM生成器创建COM组件 338
16.2.3 在Visual Basic工程中使用COM生成器组件 340
16.3 本章小结 343
习题与思考 343
参考文献 344