第1章 现代数值分析引论 1
1.1 数值分析的研究对象 1
1.2 数值算法的基本概念 1
1.3 误差的基本理论 2
1.3.1 误差的来源 2
1.3.2 绝对误差和相对误差 3
1.3.3 近似数的有效数字 4
1.4 数值算法设计的若干原则 6
习题1 9
第2章 非线性方程的求根方法 11
2.1 二分法 11
2.1.1 二分法及其收敛性 11
2.1.2 二分法的MATLAB程序 13
2.2 迭代法的基本理论 14
2.2.1 迭代法的基本思想 14
2.2.2 收敛性和误差分析 16
2.3 迭代法的加速技巧 20
2.3.1 迭代法加速的基本思想 20
2.3.2 Aitken加速公式 21
2.4 牛顿法 23
2.4.1 牛顿法及其收敛性 23
2.4.2 牛顿法的MATLAB程序 25
2.4.3 重根情形的牛顿法加速 26
2.5 割线法 27
2.5.1 割线法的迭代公式 27
2.5.2 割线法的MATLAB程序 28
2.6 方程求根的MATLAB解法 29
2.6.1 MATLAB函数fzero 29
2.6.2 MATLAB函数fsolve 30
习题2 31
第3章 线性方程组的直接解法 34
3.1 高斯消去法 34
3.1.1 顺序高斯消去法及其MATLAB程序 34
3.1.2 列主元高斯消去法及其MATLAB程序 39
3.2 LU分解法 42
3.2.1 一般LU分解及其MATLAB程序 42
3.2.2 列主元LU分解及其MATLAB程序 46
3.3 两类特殊方程组的解法 51
3.3.1 对称正定方程组的乔列斯基法 51
3.3.2 三对角线性方程组的追赶法 54
3.4 直接法的舍入误差分析 57
3.4.1 向量范数和矩阵范数 57
3.4.2 舍入误差对解的影响 59
3.5 线性方程组的MATLAB解法 61
3.5.1 利用左除运算符求解线性方程组 61
3.5.2 利用矩阵求逆函数解线性方程组 62
3.5.3 利用矩阵LU分解函数解线性方程组 63
3.5.4 利用乔列斯基分解函数解对称正定方程组 63
习题3 64
第4章 线性方程组的迭代解法 67
4.1 迭代法的一般理论 67
4.1.1 迭代公式的构造 67
4.1.2 迭代法的收敛性和误差估计 68
4.2 三种经典迭代法 70
4.2.1 雅可比迭代法及其MATLAB程序 70
4.2.2 高斯一赛德尔迭代法及其MATLAB程序 72
4.2.3 逐次超松弛迭代法及其MATLAB程序 74
4.2.4 三种经典迭代法的收敛条件 76
4.3 现代变分迭代法 81
4.3.1 最速下降法及其MATLAB程序 81
4.3.2 共轭梯度法及其MATLAB程序 85
4.3.3 广义极小残量法及其MATLAB程序 89
4.3.4 预处理技术及预处理共轭梯度法 94
习题4 95
第5章 插值法与最小二乘拟合 99
5.1 插值法的基本理论 99
5.1.1 插值多项式的概念 99
5.1.2 插值基函数 100
5.1.3 插值多项式的截断误差 100
5.2 拉格朗日插值法 101
5.2.1 拉格朗日插值基函数 101
5.2.2 拉格朗日插值及其MATLAB程序 102
5.3 牛顿插值法 104
5.3.1 差商及其性质 104
5.3.2 牛顿插值公式 106
5.3.3 牛顿插值法的MATLAB程序 108
5.4 厄尔米特插值及分段插值 109
5.4.1 两点三次厄尔米特插值 109
5.4.2 高阶插值的Runge现象 110
5.4.3 分段线性插值及其MATLAB程序 112
5.4.4 分段三次厄尔米特插值 113
5.5 三次样条插值法 114
5.5.1 三次样条插值函数 114
5.5.2 三次样条插值的MATLAB程序 118
5.6 曲线拟合的最小二乘法 120
5.6.1 最小二乘法 120
5.6.2 法方程组 122
5.6.3 多项式拟合的MATLAB程序 125
5.6.4 正交最小二乘拟合 126
5.7 插值和拟合的MATLAB解法 127
5.7.1 数据插值的MATLAB函数 127
5.7.2 曲线拟合的MATLAB函数 130
习题5 131
第6章 数值积分和数值微分 134
6.1 几个常用的求积公式 134
6.1.1 插值型求积公式 134
6.1.2 代数精度 136
6.1.3 几个常用的求积公式 137
6.2 复化求积公式 139
6.2.1 复化中点公式及其MATLAB程序 140
6.2.2 复化梯形公式及其MATLAB程序 142
6.2.3 复化辛普森公式及其MATLAB程序 144
6.3 外推加速技术与龙贝格求积公式 146
6.3.1 变步长梯形算法及其MATLAB程序 146
6.3.2 外推法与龙贝格求积公式 148
6.3.3 龙贝格加速公式的MATLAB程序 150
6.4 高斯型求积公式及其MATLAB实现 151
6.4.1 高斯型求积公式 151
6.4.2 高斯公式的MATLAB程序 154
6.5 数值微分法 155
6.5.1 插值型求导公式 155
6.5.2 两点公式和三点公式 156
6.6 数值微积分的MATLAB解法 158
6.6.1 数值积分的MATLAB函数 158
6.6.2 数值微分的MATLAB函数 161
习题6 162
第7章 矩阵特征值问题的数值方法 165
7.1 矩阵的有关理论 165
7.2 乘幂法 167
7.2.1 乘幂法及其MATLAB程序 167
7.2.2 乘幂法的加速技术 171
7.2.3 反幂法及其MATLAB程序 173
7.3 雅可比方法 176
7.3.1 实对称矩阵的旋转正交相似变换 176
7.3.2 雅可比方法及其收敛性 178
7.3.3 雅可比方法的MATLAB实现 181
7.4 QR方法 182
7.4.1 Householder变换 182
7.4.2 化一般矩阵为上Hessenberg矩阵 184
7.4.3 上Hessenberg矩阵的QR分解 187
7.4.4 基本QR方法及其MATLAB程序 191
7.5 特征值问题的MATLAB解法 193
习题7 194
第8章 常微分方程的数值解法 197
8.1 欧拉方法及其改进 197
8.1.1 欧拉公式和隐式欧拉公式 197
8.1.2 欧拉公式的改进 199
8.1.3 改进欧拉公式的MATLAB程序 201
8.2 龙格-库塔公式 202
8.2.1 龙格-库塔法的基本思想 202
8.2.2 龙格-库塔公式 203
8.2.3 龙格-库塔法的MATLAB程序 205
8.3 收敛性与稳定性 205
8.3.1 收敛性分析 206
8.3.2 绝对稳定性 209
8.4 亚当斯方法 210
8.4.1 几个常用亚当斯公式的推导 210
8.4.2 四阶亚当斯公式的MATLAB程序 213
8.5 一阶微分方程组和高阶微分方程 215
8.5.1 一阶常微分方程组 215
8.5.2 高阶常微分方程 219
8.6 常微分方程的MATLAB解法 220
习题8 222
第9章 蒙特卡洛方法简介 226
9.1 蒙特卡洛方法的基本原理 226
9.1.1 蒙特卡洛方法与随机模拟实验 226
9.1.2 概率论的相关基础理论 227
9.1.3 蒙特卡洛方法的基本特征 230
9.2 随机数与随机变量的抽样 232
9.3 蒙特卡洛方法的应用实例 234
9.3.1 用蒙特卡洛方法求解非线性方程组 234
9.3.2 用蒙特卡洛方法求解非线性规划 235
9.3.3 用蒙特卡洛方法计算定积分和重积分 237
习题9 242
附录A 数值实验 244
A.1 数值实验报告的格式 244
A.2 数值实验 245
附录B 习题参考答案及提示 252
参考文献 260