第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 数组和矩阵 11
2.2.1 数组 11
2.2.2 矩阵 12
2.3 字符串 20
2.3.1 创建字符串 20
2.3.2 创建二维字符串 20
2.3.3 类型转换 21
2.3.4 比较字符串 22
2.3.5 聚合字符串 23
2.3.6 字符分类 23
2.3.7 搜索和替换 23
2.4 多维数组 24
2.4.1 用索引生成多维数组 24
2.4.2 用MATLAB函数生成多维数组 25
2.4.3 用cat函数生成多维数组 25
2.5 结构 25
2.5.1 创建结构数组 26
2.5.2 在结构数组中获取数据 27
2.5.3 结构数组的大小 27
2.5.4 操作字段 27
2.5.5 结构嵌套 28
2.6 单元数组 29
2.6.1 创建单元数组 29
2.6.2 从单元数组中获取数据 30
2.6.3 删除单元和重塑单元数组 30
2.7 函数句柄 31
2.8 本章小结 31
习题 31
第3章 M文件设计 32
3.1 变量 32
3.1.1 变量的作用范围 32
3.1.2 变量的存活期 33
3.2 表达式 33
3.2.1 数值表示 33
3.2.2 运算符 33
3.2.3 处理字符串表达式 35
3.3 流程控制 35
3.3.1 条件控制 35
3.3.2 循环控制 37
3.3.3 错误控制 37
3.3.4 程序终止控制 38
3.4 函数 38
3.4.1 主函数 38
3.4.2 子函数 39
3.4.3 匿名函数 39
3.4.4 嵌套函数 40
3.4.5 私有函数 41
3.4.6 重载函数 41
3.5 M文件 41
3.5.1 脚本式M文件和函数式M文件 41
3.5.2 M文件的基本结构 43
3.5.3 函数的参数 44
3.5.4 函数句柄 46
3.6 程序调试和错误处理 49
3.6.1 用try-catch语句检查错误 49
3.6.2 错误和警告信息 50
3.6.3 用“Debug”菜单进行调试 50
3.7 编程技巧 50
3.7.1 矢量化 50
3.7.2 预分配内存空间 51
3.7.3 程序运行情况监测——Profiler 51
3.8 本章小结 55
习题 55
第4章 图形绘制 56
4.1 绘制二维图形 56
4.1.1 线形图、条形图和面积图 56
4.1.2 饼图 56
4.1.3 误差条图 57
4.1.4 散点图 58
4.1.5 直方图 58
4.1.6 对数坐标图和半对数坐标图 59
4.1.7 多轴图 60
4.1.8 极坐标图 61
4.1.9 帕累托图 61
4.1.10 火柴杆图 62
4.1.11 阶梯图 63
4.1.12 玫瑰花图 64
4.1.13 函数的图形 64
4.1.14 动画 65
4.2 绘制三维图形 68
4.2.1 用给定数据绘三维线形图 68
4.2.2 用给定数据绘三维表面图 69
4.2.3 表面图绘制的数据格式问题 73
4.2.4 函数的曲线和曲面 76
4.2.5 二次曲面 79
4.2.6 样条曲线和曲面 81
4.2.7 多边形对象模型 82
4.2.8 消隐控制 83
4.2.9 三维图形的场景效果设置 84
4.3 本章小结 84
习题 84
第5章 图形编程 85
5.1 句柄图形对象 85
5.1.1 句柄图形对象简介 85
5.1.2 Figure对象 86
5.1.3 Root对象 86
5.1.4 对象的属性 87
5.2 基本图形元素的绘制 88
5.2.1 创建直线段、多义线和曲线——line函数 89
5.2.2 创建矩形、圆角矩形、椭圆、圆及对应的区域图形——rectangle函数 90
5.2.3 创建多边形——patch函数 91
5.2.4 创建文本——text函数 93
5.3 图形的着色 93
5.3.1 多边形的单色填充 93
5.3.2 多边形的插值着色 94
5.3.3 颜色渐变的曲线 94
5.4 图形变换 95
5.4.1 几何变换的基本原理 95
5.4.2 实现图形变换 96
5.5 定制图形 99
5.5.1 创建圆弧 99
5.5.2 创建自己的面积图 100
5.6 交互绘图 101
5.6.1 鼠标操作 101
5.6.2 绘制橡皮线 102
5.7 本章小结 104
习题 104
第6章 高等数学计算的MATLAB实现 105
6.1 函数和极限 105
6.1.1 函数 105
6.1.2 极限 107
6.2 导数 108
6.2.1 求函数的导数 108
6.2.2 求隐函数的导数 108
6.2.3 求参数方程确定的函数的导数 109
6.3 极限和导数的应用 110
6.3.1 渐近线 111
6.3.2 极值 111
6.3.3 拐点 112
6.4 不定积分和定积分 114
6.4.1 不定积分 114
6.4.2 求定积分 115
6.4.3 定积分的近似计算 115
6.4.4 定积分的应用 116
6.4.5 多重积分 118
6.5 空间解析几何与向量代数 118
6.5.1 空间向量运算 118
6.5.2 曲面及其方程 120
6.6 多元函数的极限和求导 120
6.6.1 求多元函数的极限 120
6.6.2 求多元函数的导数 120
6.6.3 求二元隐函数的导数 121
6.7 级数 121
6.7.1 级数求和 121
6.7.2 泰勒级数展开 122
6.7.3 傅里叶级数展开 122
6.8 微分方程 123
6.9 本章小结 124
习题 124
第7章 线性代数的MATLAB实现 125
7.1 矩阵分析 125
7.1.1 矩阵行列式 125
7.1.2 矩阵的四则运算 125
7.1.3 矩阵的幂和平方根 126
7.1.4 矩阵的指数和对数 127
7.1.5 矩阵的翻转 127
7.1.6 矩阵的逆运算 128
7.1.7 矩阵的迹 128
7.1.8 矩阵的范数 128
7.1.9 矩阵的条件数 129
7.1.10 矩阵的重塑 129
7.1.11 矩阵的逻辑运算 130
7.1.12 矩阵的初等变换 130
7.1.13 矩阵的秩 131
7.2 矩阵的分解 131
7.2.1 矩阵的LU分解 131
7.2.2 矩阵的QR分解 131
7.2.3 矩阵的QZ分解 132
7.2.4 矩阵的乔累斯基分解 133
7.2.5 矩阵的奇异值分解 133
7.2.6 矩阵的特征值分解 134
7.2.7 矩阵的Schur分解 135
7.3 线性方程组的求解 135
7.3.1 方形系统 136
7.3.2 超定系统 137
7.3.3 不定系统 138
7.4 矩阵的特征值和特征矢量 139
7.5 符号矩阵 139
7.5.1 符号矩阵的四则运算 139
7.5.2 符号矩阵的其他运算 140
7.5.3 符号代数线性方程(组)的求解 142
7.6 稀疏矩阵 143
7.6.1 创建稀疏矩阵 144
7.6.2 稀疏矩阵运算 145
7.7 本章小结 145
习题 146
第8章 概率论与数理统计的MATLAB实现 147
8.1 随机变量及其分布 147
8.1.1 离散型随机变量及其分布律 147
8.1.2 连续型随机变量及其概率密度 151
8.1.3 分布函数 153
8.1.4 逆累加分布函数 158
8.2 多维随机变量及其分布 159
8.2.1 二维随机变量 159
8.2.2 边缘分布 160
8.3 随机变量的数字特征 161
8.3.1 数学期望 161
8.3.2 方差 164
8.3.3 常见分布的数学期望和方差 164
8.3.4 协方差及相关系数 165
8.3.5 矩和协方差矩阵 166
8.4 样本描述 166
8.4.1 集中趋势 166
8.4.2 离中趋势 168
8.4.3 抽样分布 169
8.5 参数估计 171
8.5.1 点估计 171
8.5.2 区间估计 172
8.5.3 常见分布的参数估计 172
8.6 假设检验 174
8.6.1 方差已知时的均值检验 174
8.6.2 方差未知时单个正态总体均值的假设检验 175
8.6.3 方差未知时两个正态总体均值差的检验 175
8.6.4 基于成对数据的检验 176
8.6.5 分布拟合检验 177
8.7 方差分析 180
8.7.1 单因子方差分析 180
8.7.2 双因子方差分析 182
8.8 一元线性回归 184
8.8.1 进行一元线性回归 184
8.8.2 可化为一元线性回归的曲线回归问题 185
8.9 本章小结 185
习题 185
第9章 最优化方法的MATLAB实现 187
9.1 一维搜索问题 187
9.1.1 基本数学原理 187
9.1.2 有关函数介绍 187
9.1.3 应用实例 188
9.2 线性规划 188
9.2.1 基本数学原理 188
9.2.2 有关函数介绍 189
9.2.3 应用实例 189
9.3 无约束非线性最优化问题 190
9.3.1 基本数学原理 191
9.3.2 有关函数介绍 191
9.3.3 应用实例 192
9.4 有约束非线性最优化问题 193
9.4.1 基本数学原理 193
9.4.2 有关函数介绍 193
9.4.3 应用实例 195
9.5 本章小结 197
习题 197
第10章 复变函数的MATLAB实现 198
10.1 构造复数(矩阵) 198
10.2 复数的实部和虚部 198
10.3 共轭复数 199
10.4 复数的模 199
10.5 辐角 199
10.6 复数的乘除法 200
10.7 复数的指数运算 200
10.8 复数的对数运算 200
10.9 复数的平方根运算 200
10.10 复数的幂运算 201
10.11 复数的三角函数运算 201
10.12 解方程 202
10.13 积分 202
10.14 复变函数的图形 202
10.15 本章小结 204
习题 204
第11章 运筹学的MATLAB实现 205
11.1 线性规划与非线性规划 205
11.1.1 线性和非线性最优化问题 205
11.1.2 二次规划 205
11.2 整数规划 206
11.2.1 基本原理 207
11.2.2 有关函数介绍 207
11.2.3 应用实例 208
11.3 最大最小化 209
11.3.1 基本数学原理 209
11.3.2 有关函数介绍 210
11.3.3 应用实例 211
11.4 多目标决策 212
11.4.1 有关函数介绍 212
11.4.2 应用实例 214
11.5 本章小结 216
习题 217
第12章 多元统计分析的MATLAB实现 218
12.1 多元线性回归分析 218
12.1.1 全回归分析 218
12.1.2 回归诊断 220
12.1.3 逐步回归 221
12.2 聚类分析 223
12.2.1 基本数学原理 223
12.2.2 有关函数介绍 224
12.2.3 应用实例 227
12.3 判别分析 236
12.3.1 基本数学原理 236
12.3.2 有关函数介绍 236
12.4 应用实例 237
12.5 因子分析 239
12.5.1 基本数学原理 239
12.5.2 有关函数介绍 239
12.5.3 应用实例 240
12.6 本章小结 243
习题 243
第13章 计算方法的MATLAB实现 246
13.1 一元非线性方程求解 246
13.1.1 fzero函数 246
13.1.2 roots函数 247
13.2 线性方程组的数值解法 247
13.2.1 基于矩阵变换的直接解法 247
13.2.2 Jocabi迭代法 247
13.2.3 Gauss-Seidel迭代法 248
13.2.4 SOR(超松弛)迭代法 249
13.3 非线性方程组的数值解法 250
13.3.1 不动点迭代法 250
13.3.2 Newton迭代法 251
13.3.3 拟Newton法 252
13.4 插值 255
13.4.1 一维插值 255
13.4.2 二维插值 256
13.4.3 多维插值 258
13.4.4 Lagrange插值 259
13.4.5 Newton插值 260
13.5 曲线拟合 261
13.5.1 最小二乘法 262
13.5.2 多项式曲线拟合 262
13.5.3 相关工具 263
13.6 数值微分 268
13.6.1 数值微分运算 268
13.6.2 数值梯度运算 268
13.6.3 中心差分 269
13.7 数值积分 270
13.7.1 梯形求积 270
13.7.2 Simpson求积 271
13.7.3 Lobatto求积 271
13.7.4 Gauss求积 272
13.7.5 Romberg求积 273
13.7.6 二重积分 274
13.7.7 三重积分 274
13.8 常微分方程的数值解 275
13.8.1 显式和线性隐式初值常微分方程问题求解 275
13.8.2 完全隐式初值常微分方程问题求解 278
13.8.3 边界值常微分方程问题求解 279
13.8.4 改进的Euler法 281
13.8.5 线性多步法 282
13.9 本章小结 284
习题 284
第14章 偏微分方程数值解的MATLAB实现 285
14.1 一维偏微分方程的求解 285
14.1.1 一维偏微分方程的一般形式 285
14.1.2 一维偏微分方程求解器 285
14.1.3 求解一维偏微分方程 287
14.2 二维偏微分方程的求解 289
14.2.1 有限元法 289
14.2.2 椭圆型问题 289
14.2.3 抛物型问题 291
14.2.4 双曲型问题 292
14.2.5 特征值问题 293
14.2.6 非线性问题 295
14.3 用GUI求解偏微分方程 296
14.3.1 求解偏微分方程的GUI简介 296
14.3.2 前处理 297
14.3.3 PDE计算 299
14.3.4 后处理 300
14.4 本章小结 301
习题 301
第15章 计算几何的MATLAB实现 302
15.1 点与多边形的包含关系 302
15.2 矩形的集合运算 303
15.3 凸包 304
15.3.1 二维点集的凸包 304
15.3.2 N维点集的凸包 304
15.4 Delaunay剖分 305
15.4.1 二维Delaunay剖分 305
15.4.2 三维Delaunay剖分 307
15.4.3 N维Delaunay剖分 308
15.5 Voronoi图 309
15.5.1 二维Voronoi图 309
15.5.2 N维Voronoi图 311
15.6 最近邻搜索 312
15.6.1 最近点搜索 312
15.6.2 最近单形体搜索 313
15.7 综合实例 313
15.7.1 散点数据的三角化和插值 313
15.7.2 高维散点集的剖分和插值 316
15.8 本章小结 321
习题 321
第16章 科学计算可视化 322
16.1 曲面数据的可视化 322
16.1.1 表现标量特征——等值线图 322
16.1.2 表现矢量特征——矢量图 325
16.2 体数据的可视化 327
16.2.1 表现标最特征 327
16.2.2 表现矢量特征 328
16.3 本章小结 328
习题 328
第17章 图形用户界面(GUI)设计 329
17.1 图形用户界面开发环境(GUIDE) 329
17.1.1 启动GUIDE 329
17.1.2 输出编辑器 329
17.1.3 GUIDE模板 330
17.1.4 菜单编辑器 330
17.1.5 对象属性查看器 331
17.1.6 位置调整工具 332
17.1.7 对象浏览器 332
17.1.8 Tab顺序编辑器 332
17.1.9 运行GUI 333
17.1.10 GUI FIG文件和M文件 333
17.2 菜单 334
17.2.1 创建菜单 334
17.2.2 菜单属性 336
17.3 控件 336
17.3.1 控件对象类型 336
17.3.2 创建控件 338
17.3.3 工具栏 339
17.4 对话框 342
17.4.1 公共对话框 342
17.4.2 一般对话框 346
17.5 GUI设计实例 351
17.5.1 设计GUI 351
17.5.2 完成GUI 352
17.5.3 设置GUI控件的属性 354
17.5.4 GUI编程 356
17.5.5 保存和运行GUI 360
17.6 本章小结 361
习题 361
第18章 文件操作 362
18.1 文件的打开、保存和关闭 362
18.1.1 打开文件 362
18.1.2 保存数据到文件 363
18.1.3 关闭文件 364
18.2 读写文本文件 364
18.2.1 使用load函数 364
18.2.2 读写值用逗号间隔的文本文件 365
18.2.3 读写文本文件时指定间隔方式 366
18.3 读写二进制数据文件 366
18.3.1 以二进制读取数据 367
18.3.2 将二进制数据写入文件 367
18.4 使用Import Wizard工具 368
18.5 本章小结 368
习题 368
第19章 编译和接口 369
19.1 MATLAB编译器 369
19.1.1 使用GUI进行编译 369
19.1.2 使用mcc进行编译 371
19.1.3 编译独立应用程序 371
19.2 MATLAB与Visual Basic接口 373
19.2.1 创建M文件并生成COM组件 374
19.2.2 在Visual Basic工程中使用COM组件 374
19.3 MATLAB与.NET程序接口 377
19.3.1 创建M文件并生成.NET组件 377
19.3.2 在VB.NET工程中使用.NET组件 377
19.4 本章小结 380
习题 380
参考文献 381