本书在教材体系、内容和思考题的选择方面吸取了国内外优秀教材的优点,结合数值分析理论抽象性、逻辑严密性与应用广泛性等特点,深入浅出地讲述了数值分析相关的基本理论和思想方法。
本书主要内容包括:数值分析基础知识与Python软件介绍、线性方程组的数值解法、函数的多项式插值法、数值积分与数值微分、常微分方程初值问题的数值解法、非线性方程的数值解法等,以及相应算法的Python程序代码。
本书适合作为信息与计算科学和数学与应用数学专业本科生数值分析课程的教材或自学参考书,也可以作为物理学、计算机科学与技术等理工类专业及相关领域学者的参考用书。
当前,智能计算和仿真模拟是计算数学和计算机科学领域的热门研究课题,相关研究成果已经应用于气象、航空航天、交通运输、机械制造、水利建筑等重要领域,这些计算性的科学和工程领域,又以数值分析作为其共性基础。数值分析是数学科学中最接近生活的部分,是理论联系实际的桥梁,也被称为计算方法或数值计算,其核心任务是构造求解科学和工程问题的计算方法,研究算法的数学机理,并通过科学计算软件在计算机上进行计算试验。
本书共分为六章,各章节的主要算法都给出了 Python通用程序,具体内容如下:
第1章为预备知识,主要介绍了数值分析的对象、内容和特点,数值计算的误差及其定性分析
,数值分析中的算法设计技术和数值分析的基本工具等,并对Python软件的数值计算基础进行了简要介绍,包括Numpy中的数组对象、矩阵与通用函数,以及Matplotlib数据可视化基础等。
第2章为线性方程组的数值解法,包括直接解法和迭代解法。直接解法中主要介绍了Gauss消
元法、主元消元法、矩阵三角分解法、三对角方程组与追赶法、 对称正定矩阵的
LLT分解与平方根法等。迭代解法部分主要介绍了迭代解法的基本概念、Jacobi迭代法与GaussSeidel迭代法、超松弛迭代法等。
第3章为函数的多项式插值法,主要介绍了多项式插值问题的提出、几种插值方法、最小二乘拟合等内容。
第4章为数值积分与数值微分,主要介绍了插值型求积公式、NewtonCotes求积公式、复化求积公式、Romberg求积公式、Gauss求积方法和数值微分等内容。
第5章为常微分方程初值问题的数值解法,主要介绍了Euler方法、
收敛性与稳定性、RungeKutta方法、 Adams法、一阶方程组与高阶方程的数值解法等。
第6章为非线性方程的数值解法,主要介绍了逐步搜索法与二分法、不动点迭代法及其收敛性、Newton
法和弦截法等。
本书具有如下特点:
(1) 在教材体系、内容和思考题的选择方面吸取了国内外优秀教材的优点,汇集了编者多年的教学经验,对晦涩难懂的数学原理进行了深度挖掘,重构了教学内容,在基本理论和思想方法的讲述上做到了深入浅出,兼顾了逻辑上的严谨性与表达形式上的直观通俗性。
(2) 本书通过对数值计算最新科研成果的介绍,引导和启发学生发现并解决问题,突出了以应用为目的的教学思想。此外,本书还对核心算法给出了完备、高质量的Python程序代码。
(3) 为加深学生对所学知识的理解和巩固,每章均配备了一定数量的习题,分为理论习题和上机实验两个部分。通过解答习题,不仅有助于学生复习各章节涵盖的数值分析理论知识,而且可提升学生处理数值计算问题的能力,取得初步的计算经验。
(4) 引入诸如“课外拓展”等模块,将专业知识与思政元素的结合贯穿整个课程设计中,因势利导,有助于培养学生求实创新的科学精神。
本书第1~4章由闫丽宏编写,第5章由杨衍婷编写,第6章由任刚练编写。
本书的编写和出版得到了咸阳师范学院 2020年教材建设项目和咸阳师范学院 “学术骨干”项目(XSYXSGG202101)的资助。由于编者水平有限,疏漏和不妥之处在所难免,恳请专家和读者批评指正。
闫丽宏
2022年6月于陕西咸阳
第1章 预备知识 1
1.1 数值分析基础 1
1.1.1 数值分析的对象、内容和特点 1
1.1.2 数值计算的误差及其定性分析 2
1.1.3 数值分析中的算法设计技术 6
1.1.4 数值分析的基本工具 8
1.2 Python数值计算基础 13
1.2.1 Python基础 13
1.2.2 Numpy数组对象 17
1.2.3 Python流程控制 20
1.2.4 Matplotlib数据可视化基础 23
习题1 26
第2章 线性方程组的数值解法 28
2.1 线性方程组的直接解法 28
2.1.1 Gauss消元法 28
2.1.2 主元消元法 33
2.1.3 矩阵三角分解法 39
2.1.4 两类特殊的矩阵分解法 47
2.1.5 直接解法的误差分析 56
2.2 线性方程组的迭代解法 58
2.2.1 迭代解法的基本概念 58
2.2.2 Jacobi迭代法与GaussSeidel迭代法 61
2.2.3 超松弛迭代法 65
应用实例:CT图像重建 72
课外拓展:《九章算术》中的方程问题 73
习题2 75
第3章 函数的多项式插值法 81
3.1 多项式插值问题的提出 81
3.2 Lagrange插值方法 82
3.2.1 基函数 82
3.2.2 Lagrange插值多项式 83
3.3 Newton插值方法 86
3.3.1 差商的定义与性质 87
3.3.2 Newton插值公式 88
3.4 Hermite插值与分段插值 91
3.4.1 Hermite插值 91
3.4.2 分段插值 96
3.5 三次样条插值 99
3.5.1 三次自然样条S(x)的计算公式 99
3.5.2 三次自然样条S(x)的误差估计 104
3.5.3 三次自然样条的最小均方曲率性质 106
3.6 曲线拟合的最小二乘法 107
3.6.1 最小二乘拟合问题 107
3.6.2 线性最小二乘拟合问题的解法 109
课外拓展:刘焯及二次内插算法 114
习题3 115
第4章 数值积分与数值微分 119
4.1 插值型求积公式 119
4.1.1 求积算式 119
4.1.2 代数精度 120
4.2 NewtonCotes求积公式 122
4.2.1 NewtonCotes公式的由来 122
4.2.2 梯形公式及其误差 124
4.2.3 Simpson公式及其误差 124
4.2.4 Cotes公式及其误差 126
4.3 复化求积公式 127
4.3.1 复化梯形公式 127
4.3.2 复化Simpson公式 130
4.4 Romberg求积公式 132
4.5 Gauss求积方法 138
4.6 数值微分 141
4.6.1 差商方法 141
4.6.2 插值型求导公式 142
课外拓展:蒙特卡洛方法 145
习题4 146
第5章 常微分方程初值问题的数值解法 150
5.1 Euler方法 150
5.1.1 Euler方法 150
5.1.2 梯形方法 153
5.1.3 预估-校正方法 155
5.2 收敛性与稳定性 158
5.2.1 局部截断误差 158
5.2.2 单步法的收敛性 159
5.2.3 单步法的稳定性 160
5.3 RungeKutta法 161
5.4 Adams法 166
5.4.1 线性多步法 166
5.4.2 Adams显式与隐式公式 167
5.5 一阶方程组与高阶方程的数值解法 172
5.5.1 一阶方程组初值问题的数值解法 172
5.5.2 高阶方程初值问题的数值解法 173
课外拓展:冯康与有限元法 174
习题5 175
第6章 非线性方程的数值解法 178
6.1 逐步搜索法与二分法 178
6.1.1 逐步搜索法 178
6.1.2 二分法 179
6.2 不动点迭代法及其收敛性 182
6.2.1 迭代法的基本思想 182
6.2.2 迭代法的收敛性 184
6.2.3 迭代法的收敛速度 186
6.3 Newton法 187
6.3.1 算法原理 187
6.3.2 Newton法的收敛性 189
6.3.3 Newton二阶导数法 190
6.4 弦截法 191
课外拓展:秦九韶与“正负开方术” 193
习题6 194
参考文献 196
第1章 预备知识
1.1 数值分析基础
1.1.1 数值分析的对象、内容和特点
1.1.2 数值计算的误差及其定性分析
1.1.3 数值计算中的算法设计技术
1.1.4 数值分析的基本工具
1.2 Python数值计算基础
1.2.1 Python基础
1.2.2 Numpy数组对象
1.2.3 Matplotlib数据可视化基础
习题1
第2章 线性方程组的数值解法
2.1 线性方程组的直接解法
2.1.1 Gauss消元法
2.1.2 主元消元法
2.1.3 矩阵三角分解法
2.1.4 两类特殊的矩阵分解法
2.1.5 直接解法的误差分析
2.2 线性方程组的迭代解法
2.2.1 迭代解法的基本概念
2.2.2 Jacobi迭代法与GaussSeidel迭代法
2.2.3 超松弛迭代法
应用实例:CT图像重建
课外拓展:《九章算术》中的方程问题
习题2
第3章 函数的多项式插值法
3.1 多项式插值问题的提出
3.2 Lagrange插值方法
3.2.1 基函数
3.2.2 Lagrange插值多项式
3.3 Newton插值方法
3.3.1 差商的定义与性质
3.3.2 Newton插值公式
3.4 Hermite插值与分段插值
3.4.1 Hermite插值
3.4.2 分段插值
3.5 三次样条插值
3.5.1 三次自然样条S(x)的计算公式
3.5.2 三次自然样条S(x)的误差估计
3.5.3 三次自然样条的最小均方曲率性质
3.6 曲线拟合的最小二乘法
3.6.1 最小二乘拟合问题
3.6.2 线性最小二乘拟合问题的解法
课外拓展:刘焯及二次内插算法
习题3
第4章 数值积分与数值微分
4.1 插值型求积公式
4.1.1 求积算式
4.1.2 代数精度
4.2 NewtonCotes求积公式
4.2.1 NewtonCotes公式的由来
4.2.2 梯形公式及其误差
4.2.3 Simpson公式及其误差
4.2.4 Cotes公式及其误差
4.3 复化求积公式
4.3.1 复化梯形公式
4.3.2 复化Simpson公式
4.4 Romberg求积公式
4.4.1 算法推导
4.5 Gauss求积方法
4.5.1 算法原理
4.6 数值微分
4.6.1 差商方法
4.6.2 插值型求导公式
课外拓展:蒙特卡洛方法
习题4
第5章 常微分方程初值问题的数值解法
5.1 Euler方法
5.1.1 Euler方法
5.1.2 梯形方法
5.1.3 预估-校正方法
5.2 收敛性与稳定性
5.2.1 局部截断误差
5.2.2 单步法的收敛性
5.2.3 单步法的稳定性
5.3 RungeKutta方法
5.4 Admas法
5.4.1 线性多步法
5.4.2 Admas显式与隐式公式
5.5 一阶方程组与高阶方程的数值解法
5.5.1 一阶方程组初值问题的数值解法
5.5.2 高阶方程初值问题的数值解法
课外拓展:冯康与有限方法
习题5
第6章 非线性方程的数值解法
6.1 逐步搜索法与二分法
6.1.1 逐步搜索法
6.1.2 二分法
6.2 不动点迭代法
6.2.1 迭代法的基本思想
6.2.2 迭代法的收敛性
6.2.3 迭代法的收敛速度
6.3 Newton法及其收敛性
6.3.1 算法原理
6.3.2 Newton法的收敛性
6.3.3 Newton二阶导数法
6.4 弦截法
课外拓展:秦九韶与“正负开方术”
习题6
参考文献