本书详细介绍了科学计算领域中常用的数值计算方法,主要内容包括插值与逼近、数值积分与数值微分、非线性方程及非线性方程组的数值计算方法、线性方程组的数值计算方法、常微分方程初值问题的数值计算方法等。本书不仅系统介绍了求解各类数学问题的最基本的数值计算方法和相关基础理论,而且补充和新增了相应的优化计算方法。为了方便教学,作者给出了相关实例的MATLAB源程序,便于师生上机练习。本书的最大特色是以提出问题—分析问题—解决问题为主线,先有问题背景后有解决问题的模型、算法和程序设计的教学和教材体系,体系严密,系统性强。除第2章外每章给出典型例子和一定数量的习题,并在书后给出了习题解答。 本书可作为高等院校理工科专业本科生和研究生的教材,也可作为相关科研人员的参考用书。
样章试读
目录
- 前言
第1章 引论
1.1 数值计算方法的对象、特点和意义
1.2 误差分析
1.3 数值计算中应注意的问题
习题1
第2章 MATLAB在数值计算中的应用
2.1 MATLAB语言基础知识
2.1.1 MATLAB文件类型
2.1.2 MATLAB的矩阵、变量与表达式
2.2 基本绘图方法
2.2.1 直角坐标中的二维曲线
2.3 MATLAB基本运算
2.3.1 关系运算
2.3.2 逻辑运算
2.3.3 特殊运算符
2.3.4 矩阵运算
2.4 MATLAB控制语句
2.5 自定义函数
2.6 数值计算中的常用库函数
2.6.1 向量与矩阵常用库函数
2.6.2 插值函数
2.6.3 多项式计算
2.6.4 曲线拟合
2.6.5 数值微分与差分diff
2.6.6 数值积分函数quad和quad8
2.6.7 常微分方程求解函数ode23和ode45
2.6.8 非线性方程求解函数
第3章 插值与逼近
3.1 问题背景:人口增长问题
3.2 拉格朗日插值(Lagrange interpolation)
3.2.1 线性插值
3.2.2 抛物插值(也称二次插值)
3.2.3 n次插值
3.2.4 插值余项
3.3 牛顿插值(Newton interpolation)
3.3.1 具有继承性的插值公式
3.3.2 差商及其性质
3.3.3 差商形式的插值公式
3.3.4 差分形式的插值公式
3.4 埃尔米特插值(Hermite interpolation)
3.4.1 二次插值
3.4.2 三次插值
3.4.3 2n+1次插值
3.4.4 Hermite插值余项定理
3.5 三次样条插值
3.5.1 样条函数的概念
3.5.2 三次样条插值
3.5.3 三次样条插值函数的求法
3.6 曲线拟合的最小二乘法
3.6.1 直线拟合
3.6.2 多项式拟合
3.7 多项式曲线拟合的递归最小二乘法
习题3
第4章 数值积分与数值微分
4.1 问题背景:PID调节器
4.1.1 PID控制规律(比例、积分、微分)的基本形式
4.1.2 PID控制规律的物理意义
4.2 机械求积
4.2.1 数值积分的基本思想
4.2.2 求积公式和它的代数精度
4.2.3 插值型的求积公式
4.3 牛顿-柯特斯(Newton-Cotes)求积公式
4.3.1 公式的推导
4.3.2 n低阶求积公式的代数精度
4.4 龙贝格(Romberg)算法
4.4.1 梯形法的递推公式
4.4.2 算法步骤
4.4.3 MATLAB源程序
4.4.4 龙贝格算法
4.5 高斯(Gauss)求积算法
4.5.1 高精度的求积公式
4.5.2 高斯公式的基本特点
4.5.3 勒让德多项式
4.5.4 高斯求积公式的余项
4.5.5 高斯求积公式的稳定性与收敛性
4.6 数值积分的神经网络算法
4.6.1 余弦基函数神经网络模型
4.6.2 数值积分实例
4.7 数值微分
4.7.1 用插值多项式求数值微分
4.7.2 二阶数值微分公式
4.7.3 用三次样条函数求数值微分
习题4
第5章 非线性方程的数值解法
5.1 问题背景:人口增长问题
5.2 二分法(The Bisection Method)
5.2.1 二分法基本思想
5.2.2 二分法算法的源程序(bisection.m)
5.2.3 总结
5.3 迭代法
5.3.1 迭代法的基本思路
5.3.2 线性迭代函数的启示
5.3.3 压缩映像原理
5.3.4 定点迭代法源程序(fixedp.m)
5.3.5 迭代过程的收敛速度
5.4 迭代过程的加速收敛方法
5.4.1 迭代公式的加工
5.4.2 埃特金算法
5.4.3 埃特金加速算法的源程序(aitken.m)
5.5 牛顿迭代法
5.5.1 牛顿迭代公式的导出
5.5.2 牛顿法的收敛性
5.5.3 牛顿迭代法源程序(newtoniter.m)
5.5.4 牛顿下山法
5.6 弦截法
5.6.1 弦截法
5.6.2 弦截法的收敛性
5.7 求解非线性方程的神经网络算法
5.7.1 求解一元非线性方程的神经网络算法
5.7.2 神经网络算法收敛性研究
5.7.3 神经网络算法步骤
5.7.4 算例
5.7.5 算法改进
5.8 求解非线性方程组的神经网络算法
5.8.1 求解非线性方程组的神经网络模型
5.8.2 神经网络算法收敛性研究
5.8.3 神经网络算法步骤
5.8.4 数值试验
5.9 求解非线性方程的其他算法
5.10 求解非线性方程或代数方程重根的方法
5.10.1 算法描述
5.10.2 数值实例
习题5
第6章 线性方程组的数值解法
6.1 问题背景:电阻网络
6.1.1 直接法
6.1.2 迭代法
6.2 高斯(Gauss)消元法
6.2.1 高斯消去法的计算过程
6.2.2 高斯消去法应注意的问题
6.3 三角分解法
6.3.1 矩阵A=[a_ij]_n×n的Crout分解
6.3.2 矩阵A=[a_ij]_n×n的Cholesky分解(LL^T分解)
6.3.3 解三对角线性方程组的三对角算法(追赶法)
6.4 向量和矩阵的范数
6.4.1 向量的范数
6.4.2 向量范数的定义
6.4.3 矩阵的范数
6.4.4 谱半径、谱范数与方阵的F-范数
6.4.5 方程组的状态与条件数
6.4.6 向量、矩阵的范数和条件数的计算
6.5 矩阵特征值和特征向量
6.5.1 雅可比(Jacobi)方法
6.5.2 QR方法
6.5.3 计算矩阵特征值和特征向量的库函数
6.5.4 计算矩阵行列式值的库函数:det(.)
6.6 迭代法
6.6.1 雅可比(Jacobi)迭代法
6.6.2 赛德尔迭代法
6.6.3 关于Jacobi迭代法与G-S迭代法收敛性判据
6.6.4 逐次超松弛迭代法(SOR法)
6.7 共轭斜量(梯度)法
6.7.1 改善矩阵A条件数的方法
6.7.2 条件预优共轭梯度算法
6.7.3 残差校正方法
6.8 基于梯度下降法的神经网络算法
6.8.1 基于梯度下降法(Gradient-descent method)的神经网络算法(NN-GDM)
6.8.2 应用实例
6.9 基于递推最小二乘算法的神经网络计算方法(NN-RLS)
习题6
第7章 常微分方程的初值问题的数值解法
7.1 问题背景:RLC电路网络
7.2 欧拉方法
7.3 改进的欧拉方法
7.3.1 梯形公式
7.3.2 改进的欧拉公式
7.4 高阶泰勒方法(Higher-order Taylor Methods)
7.5 龙格-库塔方法(Runge-Kutta Methods)
7.5.1 龙格-库塔方法的设计思想
7.5.2 二阶龙格-库塔方法
7.5.3 三阶龙格-库塔方法
7.5.4 四阶龙格-库塔方法
7.6 亚当斯方法(Adams Method)
7.6.1 亚当斯格式
7.6.2 亚当斯预报-校正系统
7.6.3 亚当斯预报-校正系统误差分析
7.7 收敛性与稳定性
7.7.1 收敛性问题
7.7.2 单步法的收敛性
7.7.3 单步法的稳定性问题
7.8 一阶常微分方程组和高阶微分方程求解
7.8.1 一阶方程组
7.8.2 高阶常微分方程的初值问题
7.9 高阶微分方程边值问题求解
7.10 求解常微分方程初值问题的神经网络算法
7.10.1 解微分方程初值问题的神经网络算法描述
7.10.2 解微分方程初值问题的神经网络算法步骤
7.10.3 仿真实例
习题7
习题答案
参考文献