计算机科学丛书 MATLAB程序设计导论
作者:于俊伟,刘楠译;(美)尤金尼·E.米哈伊洛夫
出版时间:2019年版
内容简介
本书分三个层次进行内容组织:计算基础、使用MATLAB解决日常生活问题、深入研究和扩展。计算基础部分除了介绍MATLAB的基础知识,还包含计算历史和编程语言的简要介绍,以及良好的编程实践。这部分内容凝练了大学中常开设的“计算机基础”和“计算机科学导论”等课程的精华。第二部分主要涉及线性代数方程求解、数值求导、求根算法等内容,利用高等数学和线性代数等课程的基本知识,简单快速地解决日常生活中的常见问题。*后一部分是关于MATLAB的深入研究和扩展,介绍了随机过程、蒙特卡洛仿真、优化问题和离散傅里叶变换等内容,当你深入到实际科学研究和工程项目时都会用到这方面的内容。
目录
出版者的话
译者序
前言
第一部分计算基础
第1章计算机与编程语言简介2
11早期计算史2
12现代计算机3
13什么是编程3
14编程语言概述4
15计算机中的数字表示及其潜在问题5
151离散化——计算机的主要弱点5
152二进制表示6
153浮点数表示6
154结论7
16自学7
第2章MATLAB基础9
21MATLAB的图形用户界面9
22功能强大的MATLAB计算器11
221MATLAB的变量类型11
222内置函数和运算符12
223运算符的优先级13
224注释14
23高效编辑14
24使用帮助文档15
25矩阵16
251创建和访问矩阵元素16
252基本矩阵运算17
253字符串矩阵20
26冒号运算符20
27绘图21
28自学23
第3章布尔代数、条件语句和循环24
31布尔代数24
311MATLAB中布尔运算符的优先级25
312MATLAB布尔逻辑运算举例25
32比较运算符26
321向量比较26
322矩阵比较27
33条件语句27
331if-else-end语句27
332if语句的简短形式28
34等于语句的常见错误28
35循环28
351while循环28
352特殊命令——break和continue29
353for循环30
36自学31
第4章函数、脚本和良好的编程实践32
41动机引例32
411银行利率问题32
412飞行时间问题32
42脚本33
43函数35
44良好的编程实践37
441简化代码37
442试着预见非预期行为37
443运行测试用例38
444检查并清理输入参数39
445判断解是否符合实际40
446良好的编程实践总结40
45递归函数和匿名函数40
451递归函数40
452匿名函数41
46自学42
第二部分使用MATLAB求解日常问题
第5章线性代数方程组求解46
51风铃问题46
52MATLAB内置求解器48
521逆矩阵法48
522无逆矩阵计算的方法48
523选用哪种方法48
53用MATLAB求解风铃问题49
54示例:惠斯通电桥问题50
55自学52
第6章数据约简与拟合53
61数据约简与拟合的必要性53
62拟合的正式定义53
63数据拟合示例54
64参数不确定性估计56
65拟合结果评估56
66如何得到最优拟合58
661数据绘图60
662选择拟合模型60
663拟合参数的初始猜测61
664基于初始猜测的数据和模型绘制61
665拟合数据62
666拟合参数的不确定性评估63
67自学65
第7章数值导数67
71通过前向差分估计导数67
72数值导数的算法误差估计68
73通过中心差分估计导数69
74自学70
第8章求根算法71
81求根问题71
82试错法71
83二分法72
831二分法示例和测试用例74
832二分法代码的可能改进76
84算法收敛76
85试位法77
86割线法78
87牛顿拉弗森法79
871使用牛顿拉弗森法进行解析求导80
872使用牛顿拉弗森法进行数值求导81
88Ridders法81
89求根算法的陷阱82
810求根算法总结83
811MATLAB内置求根命令84
812自学84
第9章数值积分方法86
91积分问题描述86
92矩形法86
93梯形法89
94辛普森法90
95广义积分公式90
96蒙特卡罗积分91
961示例:计算池塘面积91
962朴素蒙特卡罗积分91
963蒙特卡罗积分推导91
964蒙特卡罗方法的算法误差92
97多维积分92
98蒙特卡罗多维积分94
99数值积分陷阱94
991使用大量的数据点94
992使用过少的数据点95
910MATLAB的积分函数95
911自学96
第10章数据插值98
101最近邻插值98
102线性插值99
103多项式插值101
104好的插值程序的准则102
105三次样条插值102
106MATLAB内置的插值方法104
107外推法104
108插值的非常规应用104
109自学105
第三部分深入研究并扩展科学家的工具箱
第11章随机数生成器和随机过程108
111统计和概率简介108
1111离散事件的概率108
1112概率密度函数108
112均匀随机分布109
113随机数生成器和计算机110
1131线性同余生成器110
1132随机数生成器周期111
114如何检验随机数生成器111
115MATLAB的内置随机数生成器113
116自学114
第12章蒙特卡罗仿真115
121钉板实验115
122抛硬币游戏117
123传染病传播118
124自学123
第13章优化问题125
131优化问题简介125
132一维优化126
1321黄金分割最优搜索算法126
1322一维最优MATLAB内置函数128
1323一维优化示例128
133多维优化130
134组合优化135
1341背包问题135
1342旅行商问题138
135模拟退火算法143
136遗传算法150
137自学151
第14章常微分方程153
141常微分方程简介153
142边界条件154
143求解常微分方程的数值方法155
1431欧拉方法155
1432二阶RungeKutta方法(RK2)156
1433四阶RungeKutta法(RK4)157
1434其他数值求解器157
144刚性常微分方程及数值解的稳定性问题157
145MATLAB的内置常微分方程求解器159
146常微分方程示例159
1461自由落体159
1462空气阻