第1部分 基础篇 1
第1章 MATLAB科学计算基础 2
1.1 认识MATLAB 2
1.2 安装说明 4
1.3 初学者如何开始使用MATLAB 5
1.4 如何获取帮助 6
1.4.1 本地帮助 6
1.4.2 网上求助 7
1.5 路径设定与转换 7
1.6 偏好设置 9
1.7 添加工具箱 12
1.8 小结 13
第2章 理解MATLAB的数据类型 14
2.1 double型数据 14
2.2 字符串 15
2.2.1 字符串的定义 15
2.2.2 字符串操作函数 16
2.3 cell结构 24
2.3.1 图形化表示cell的内容 25
2.3.2 检查变量是否为cell结构 25
2.4 结构型 26
2.5 8位整型数据 28
2.6 不同数据类型之间的转化 28
2.7 变量与常量 30
2.8 小结 31
第3章 向量与矩阵运算 32
3.1 向量的定义 32
3.2 向量运算函数 34
3.2.1 判断矩阵是否为向量 34
3.2.2 向量的长度 35
3.2.3 向量的外积 35
3.2.4 向量的内积 35
3.2.5 求解线性趋势项 36
3.2.6 反转向量顺序 37
3.3 集合的定义及相关运算 38
3.3.1 集合的交集 38
3.3.2 集合中元素的判断 39
3.3.3 两个集合的差集 39
3.3.4 集合异或运算 40
3.3.5 集合的并集 40
3.3.6 去除重复的元素 41
3.4 矩阵生成方法 42
3.5 特殊矩阵的生成 43
3.6 矩阵计算的基本函数 44
3.6.1 大小及索引问题 44
3.6.2 矩阵整形 46
3.6.3 对角矩阵 48
3.6.4 矩阵旋转与移动 48
3.6.5 矩阵大小的增减 51
3.6.6 矩阵的本征值 52
3.7 高维数组 53
3.7.1 计算数组维数 53
3.7.2 删除单独的维数 54
3.7.3 移动数组维的顺序 54
3.7.4 改变数组的维数 55
3.7.5 计算高维函数的离散形式 55
3.8 小结 56
第4章 表达式 57
4.1 算术表达式 57
4.2 关系表达式 58
4.3 逻辑运算 59
4.3.1 基本运算 59
4.3.2 腐蚀与膨胀运算 64
4.4 符号计算 65
4.4.1 变量的定义 65
4.4.2 赋值函数的使用 69
4.4.3 符号微积分 70
4.5 多项式运算 73
4.5.1 多项式的定义 73
4.5.2 特殊函数与特殊多项式 73
4.5.3 多项式的运算 77
4.6 卷积与相关 80
4.6.1 计算二维离散卷积 80
4.6.2 计算线相关系数 81
4.7 表达式的应用技巧 82
4.7.1 符号表达式转化为字符串 82
4.7.2 对变量的调用 82
4.7.3 含变化参数的符号计算 83
4.7.4 用函数实现赋值 83
4.7.5 调用maple数来计算 83
4.7.6 符号表达式的转化 83
4.7.7 数值型矩阵转化为符号矩阵 84
4.7.8 复合函数的应用 84
4.7.9 建立抽象函数 84
4.8 小结 85
第5章 程序结构与优化 86
5.1 条件语句 86
5.2 switch语句 89
5.3 循环结构 90
5.4 递归结构 93
5.5 人机交互函数 95
5.6 程序加速 97
5.7 程序注释 99
5.8 常见错误的调试 100
5.8.1 语法错误 100
5.8.2 非语法错误 102
5.9 小结 104
第6章 文件处理 105
6.1 脚本文件 105
6.2 函数文件 107
6.2.1 函数的定义 107
6.2.2 输入输出参数的控制 108
6.2.3 使用内联函数 111
6.2.4 分段函数 113
6.2.5 子函数和私有函数 115
6.3 函数文件与脚本文件的比较 116
6.4 数据文件 117
6.4.1 常用的数据文件读入函数 117
6.4.2 常用数据的写入函数 121
6.5 图片文件 125
6.5.1 读入多种格式的图片文件 125
6.5.2 把数据写到一个图片文件 126
6.5.3 把矩阵保存为图片文件 127
6.5.4 打印当前图形文件 127
6.6 视频和音频文件 127
6.7 文件批处理结构 129
6.7.1 改变MATLAB的当前路径 129
6.7.2 复制文件 130
6.7.3 删除文件 130
6.7.4 保存命令窗中的会话内容 131
6.7.5 指定路径下的所有文件名 131
6.7.6 编辑一个文件 132
6.7.7 文件各个部分的信息 132
6.7.8 建立完整的文件名 132
6.7.9 列出内存中的函数名 133
6.7.10 建立新的文件夹 133
6.7.11 记录当前路径信息 133
6.7.12 删除一个路径 133
6.7.13 显示M文件的全部内容 134
6.7.14 列出当前路径下的内容 134
6.7.15 基本结构 134
6.7.16 无规则文件名的处理 135
6.8 小结 135
第2部分 科学计算 137
第7章 线性方程组 138
7.1 基础MATLAB函数 138
7.1.1 矩阵的cholesky分解 139
7.1.2 矩阵的不完全cholesky分解 139
7.1.3 提取矩阵的对角元素 139
7.1.4 求本征值和本征向量 140
7.1.5 矩阵的基本运算 140
7.1.6 矩阵的LU分解 141
7.1.7 矩阵的不完全LU分解 141
7.1.8 矩阵范数的计算 141
7.1.9 计算伪逆矩阵 142
7.1.10 矩阵的QR分解 142
7.1.11 计算矩阵的秩与迹 142
7.2 矩阵求逆法 143
7.3 消元法 147
7.4 矩阵分解算法 152
7.5 迭代法 159
7.6 共轭梯度法解方程组 163
7.7 小结 166
第8章 超越方程的求解 167
8.1 函数解法 167
8.1.1 求解一般方程 167
8.1.2 求解非线性方程 171
8.1.3 求解多元非线性方程 174
8.1.4 求解多项式的根 177
8.1.5 fminbnd函数 179
8.2 数值方法 180
8.2.1 二分法 180
8.2.2 抛物线法 182
8.2.3 牛顿法 184
8.2.4 正割法 187
8.2.5 Steffenson法 189
8.3 小结 189
第9章 数据拟合与插值 191
9.1 拟合基础 191
9.2 最小二乘拟合 193
9.3 多项式拟合 198
9.4 非线性拟合 202
9.5 Lagrange插值 204
9.6 Hermite插值 206
9.7 样条插值 208
9.8 二维插值 215
9.8.1 网格节点插值法 216
9.8.2 散乱节点插值 216
9.9 小结 218
第10章 最值问题的求解 219
10.1 极值计算 219
10.1.1 连续情况 219
10.1.2 离散情况 223
10.2 最值 226
10.2.1 离散数据的最值 227
10.2.2 连续函数的最小值 228
10.3 利用极值画包络线 241
10.4 小结 244
第11章 随机数的应用 245
11.1 随机数的产生 245
11.1.1 一般的随机函数调用格式 245
11.1.2 生成其他分布的随机函数 246
11.1.3 随机排序函数类型 249
11.1.4 计算概率密度函数的MATLAB函数 250
11.1.5 累积概率值 251
11.1.6 逆累积分布函数 252
11.2 随机数的使用 253
11.2.1 Galton板实验 253
11.2.2 赌徒输光问题 254
11.3 统计量的计算 255
11.3.1 单值参数 256
11.3.2 多值参数 259
11.4 回归分析 260
11.4.1 线性回归 260
11.4.2 非线性回归 263
11.5 小结 266
第12章 微分方程组的计算 267
12.1 极限 267
12.2 全导数 268
12.3 dsolve函数 269
12.4 ode系列函数 270
12.4.1 odeset函数 270
12.4.2 函数ode15i 272
12.4.3 举例说明 272
12.5 打靶法 283
12.6 时滞微分方程 288
12.7 偏微分方程 289
12.8 利用微分算积分 295
12.9 小结 296
第13章 积分运算 297
13.1 级数求和 297
13.1.1 symsum函数 297
13.1.2 taylor函数 298
13.1.3 傅里叶级数 299
13.2 离散积分的计算 300
13.2.1 函数法 300
13.2.2 累加法 310
13.3 奇异积分计算 315
13.4 小结 316
第14章 数学变换运算 317
14.1 分数傅里叶变换 317
14.2 菲涅尔变换 324
14.3 Hartley变换 326
14.4 离散正/余弦变换 328
14.5 分数随机变换 332
14.6 汉克尔(Hankel)变换 335
14.7 小波变换 338
14.7.1 管理小波函数 338
14.7.2 计算一维小波变换 339
14.7.3 实现逆离散小波变换 341
14.7.4 实现二维离散小波变换 342
14.7.5 实现二维逆小波变换 343
14.8 小结 344
第15章 特殊函数 345
15.1 Bessel函数 345
15.2 Hermite函数 350
15.3 阶乘函数与Gamma函数 352
15.4 Beta函数 355
15.5 其他特殊数学函数 358
15.6 小结 361
第3部分 数据可视化仿真 363
第16章 二维数据可视化 364
16.1 基本命令 364
16.1.1 曲线绘制的基本函数 364
16.1.2 特殊图形的函数 370
16.1.3 符号绘图 381
16.2 图形编辑 385
16.2.1 应用句柄 385
16.2.2 鼠标控制 388
16.2.3 图形注释 390
16.2.4 字体设定 393
16.3 自定义特殊图形样式 393
16.3.1 用特殊字符标注刻度 393
16.3.2 用特殊图案填充条状图 394
16.3.3 自定义网格 395
16.3.4 画箭头 396
16.3.5 多值函数的绘制 398
16.4 基本图形的绘制 398
16.4.1 线段和弧线 398
16.4.2 矩形 399
16.4.3 正N边形和圆 400
16.4.4 弯曲的圆管 401
16.4.5 封闭图形的填充 402
16.5 多图布局 403
16.5.1 subplot函数 403
16.5.2 axes函数 404
16.5.3 图上图 405
16.6 图像处理函数 405
16.7 动画的绘制 409
16.7.1 制作动画的方法 410
16.7.2 保存动画 410
16.7.3 实例 411
16.8 图形的保存 413
16.9 小结 414
第17章 三维数据可视化 415
17.1 基本函数 415
17.1.1 函数meshgrid 415
17.1.2 三维曲线 416
17.1.3 三维网格图 417
17.1.4 用ezmesh绘制三维网格图 418
17.1.5 带有等高线的网状图 420
17.1.6 带有等高线的网状图 421
17.1.7 带有“围裙”的网状图 422
17.1.8 三维曲面图 422
17.1.9 基于数学表达式的三维曲面 423
17.1.10 带有等高线的曲面 425
17.1.11 带有光照效果的曲面 426
17.1.12 三维表面法向 427
17.1.13 三维等高线 428
17.1.14 流水效果的曲面 429
17.1.15 颜色表示高度值的图形 429
17.1.16 三维饼图 432
17.1.17 螺旋体坐标 433
17.1.18 单位球体的坐标 434
17.1.19 椭球体表面坐标 435
17.1.20 函数slice 435
17.2 彩色图及颜色条 436
17.2.1 控制着色方式 436
17.2.2 图片亮度的控制 437
17.2.3 绘制色轴 438
17.2.4 指定色轴的刻度 438
17.2.5 图形的映像数据表 439
17.2.6 设置颜色渲染属性 440
17.2.7 透明度的设置 440
17.2.8 单色网格曲面 441
17.3 视角与光照 443
17.3.1 改变三维图形的视角 443
17.3.2 灯光效果设置 445
17.4 图形的注释 446
17.5 小结 448
第18章 用户图形界面设计 449
18.1 菜单设计 449
18.1.1 函数及使用说明 449
18.1.2 回调函数设计 453
18.2 自定义工具条 453
18.2.1 图形编辑功能 453
18.2.2 个性化图标 458
18.2.3 参数设置 459
18.3 控件设计 460
18.3.1 基本函数 460
18.3.2 控件基础 461
18.3.3 回调函数设计 462
18.4 对话框 470
18.4.1 图形窗口 470
18.4.2 错误对话框 471
18.4.3 帮助对话框 471
18.4.4 输入对话框 471
18.4.5 列表对话框 472
18.4.6 消息对话框 473
18.4.7 版面对话框 474
18.4.8 打印对话框 474
18.4.9 问题对话框 475
18.4.10 文件检索对话框 475
18.4.11 写入文件而显示的检索框 475
18.4.12 颜色设置对话框 476
18.4.13 字体设置 477
18.4.14 警告对话框 477
18.4.15 计算进度条窗口 477
18.5 实例 478
18.6 小结 480
第4部分 科学问题编程 481
第19章 MATLAB建模基础 482
19.1 抽象模型 482
19.1.1 数学建模的一般方法和步骤 482
19.1.2 数学模型的分类 483
19.1.3 数学建模示例 483
19.2 离散采样方法 486
19.3 算法结构设计 489
19.4 实例仿真 494
19.5 验证方法 497
19.6 算法优化 499
19.7 小结 501
第20章 混沌现象 502
20.1 离散混沌 502
20.1.1 罗杰斯蒂映射 503
20.1.2 埃农映射 504
20.1.3 帐篷映射 506
20.1.4 肯特映射 506
20.1.5 Lozi映射 507
20.1.6 Ushiki映射 509
20.1.7 三个迭代式形成的映射关系 511
20.1.8 双混沌图形 514
20.1.9 标准映射 515
20.2 微分方程中的分岔和混沌行为 516
20.2.1 根据微分方程绘制分岔图形的做法——举例说明 516
20.2.2 三元微分方程组中的分岔、混沌现象的模拟 518
20.2.3 蔡氏混沌电路 520
20.3 混沌吸引子 522
20.3.1 相图 522
20.3.2 Lorenz吸引子 525
20.3.3 Rossler吸引子 526
20.4 Lyapunov指数 527
20.5 小结 529
第21章 分形图形 530
21.1 基本分形图 530
21.1.1 康托集 530
21.1.2 Julia集 534
21.1.3 Koch曲线 539
21.2 迭代函数系统 541
21.2.1 基本定义 541
21.2.2 分形树叶 544
21.2.3 分形树 546
21.2.4 龙曲线 548
21.3 递归算法 550
21.3.1 分形树木 550
21.3.2 Arboresent肺 552
21.3.3 Sierpinski垫片 552
21.3.4 Peano曲线 554
21.3.5 C曲线 555
21.3.6 多角星构成的分形图 556
21.4 分维的计算 558
21.5 小结 559
第22章 元胞自动机 560
22.1 奇偶规则 560
22.2 砂堆规则 563
22.3 细菌生长模型 566
22.4 气体扩散 568
22.5 蚂蚁规则 571
22.6 六边形格子的粒子运动 575
22.7 小结 579
第23章 晶体生长模拟 580
23.1 随机布朗运动 580
23.2 扩散限制凝聚(DLA) 584
23.3 随机吸附 591
23.4 随机向心吸附 592
23.5 小结 594
第24章 光学现象模拟 595
24.1 网格上的鱼眼 595
24.2 计算全息编码及再现程序 598
24.3 光的等厚干涉 602
24.4 杨氏双缝干涉 604
24.5 牛顿环 606
24.6 小结 609
第25章 机械运动模拟 610
25.1 凸轮机构绕中轴线旋转 610
25.2 阻尼运动 613
25.3 连杆机构的运动模拟 616
25.3.1 双摆运动的模拟 616
25.3.2 四连杆结构的运动情况 618
25.3.3 带有套环的机械结构的运动过程 620
25.3.4 小球在水平面上受3根弹簧作用下的运动情况 622
25.4 凸轮的转动 624
25.5 小结 626
第26章 经济和金融问题的求解 627
26.1 金融工具箱介绍 627
26.2 时间序列预测模型 628
26.2.1 布朗(Brown)非线性指数法产生时间序列 628
26.2.2 Gomperta曲线预测模型 630
26.2.3 logistic曲线预测模型 631
26.3 经济学模型 634
26.3.1 凯恩斯模型 634
26.3.2 封闭经济系统的动态IS-LM模型 636
26.3.3 开放经济系统的动态IS-LM-BP模型 637
26.4 规划问题求解 638
26.5 小结 641
第27章 常用算法及MATLAB实现 642
27.1 遗传算法 642
27.2 模拟退火算法 646
27.3 分步傅里叶算法 651
27.4 蚁群算法 653
27.5 分水岭算法 653
27.6 粒子群优化算法 654
27.7 BP算法 657
27.8 最短路径Dijkstra和floyd算法 658
27.9 3个圆的外切圆算法 659
27.10 小结 660
附录A 网络程序下载地址 661
参考文献 662