当前课程知识点:数值分析 > 第七章 数值微分与数值积分 > 7.1 数值微分 > 数值微分
大家好 我是北京理工大学的满红英老师
今天我们来学习第七章
数值微分与数值积分
我们首先来看以下几个例子
已测得某地大气压强随高度变化的一组数据
我们来求1000米处大气压强的变化率
这里大气压强关于高度的变化率
实际上就是大气压强关于高度的导数
所以这个问题就是
已知函数在节点的值
求函数在某些点的导数
我们再来看第二个例子
我们关于定积分的计算问题
有微积分基本定理
我们知道
f在ab区间上的定积分就等于它的
某个原函数在积分上限的值
减掉它在积分下限的值
但是很多函数的原函数
不能用初等函数表示
比如f(x)等于x分之sin x
f(x)等于e的-x平方
或者可以表示
但是它的形式复杂 难以计算
那这个时候
我们是否可以找到简单的方法
来计算下述的定积分
我们再来看第三个例子
已知函数f(x)在对应一些点的数据
但是没有解析表达式
这个时候我们如何来求函数
在这个区间上的积分值
对应的数学问题就是说
已知函数在节点的值
如何来求函数在某个区间上的积分
我们要解决上述三个问题
那这个时候
就需要对积分和微分来做近似计算
那这个 就是数值微分与数值积分
所谓数值微分
就是利用离散点上函数的信息
来求函数的导数
数值积分
就是利用离散点上函数的信息
来求函数的积分
首先 我们来看数值微分
数值微分主要有以下三种常用的求导公式
第一种是差商型
第二种是插值型
第三种 是利用样条插值函数来求数值微分
首先 我们来看一下差商型的求导公式
由导数的定义 我们知道
函数f在x点的导数
就等于f(x+h)-f(x)除以h
当h趋向于0时的极限
当这个步长h非常小的时候
我们可以用差商来近似导数
由此 我们即可以得到差商型的求导公式
那这里 我们假定这个h是大于零的
可以得到
向前差商求导公式
即f'(x) 近似的等于
f(x+h)-f(x)除以h
我们也可以用向后差商来近似导数
f'(x) 近似的等于
f(x)-f(x-h)除以h
我们也可以用x点的
中心差商来近似
x点的一阶导数
即f'(x) 近似的等于
f(x+h)-f(x-h)除以2h
从几何上来看
我们知道 x点的向前差商
这里弦BC它的斜率
而向后差商
即是弦AB的斜率
中心差商即是弦AC的斜率
而x点的导数
就是点B这一点
对应的曲线的切线的斜率
从几何直观上来看
我们用这些弦的斜率来近似
B点的切线的斜率
中心差商的效果是最好的
用差商来近似导数
它的误差到底是什么样子的
我们要从理论上来进行分析
这个就是
差商型求导公式 它的截断误差
我们由Taylor公式
可以得到向前差商它的
截断误差为负的二分之一h
f''在某一点η的值
也就说 这个误差和h是同阶的
向后差商 它的截断误差是二分之h
f的二阶导数在某一点η值
它的误差阶也是O(h)
而中心差商
它的截断误差是负的六分之h平方
f的三阶导数在某一点η的值
它与h平方 是同阶的
截断误差如何来计算
我们以中心差商为例
我们由Taylor展开
把f(x+h)
和f(x-h)
分别在x点做Taylor展开
然后我们把这两个展开式相减
除以2h
即可以得到f(x+h)-f(x-h)
除以2h
等于f'(x)加十二分之h平方
f'''在η1的值
加上f'''在η2的值
如果f的三阶导数是连续的
我们可以利用连续函数的介质定理
即可以得到
中心差商
f(x+h)-f(x-h)除以2h
就等于f在x点的一阶导数
加上六分之h平方
f的三阶导数在某一点η的值
那这样的话
我们就给出它的截断误差即为
负的六分之h平方
f三阶导数在η点的值
对于二阶导数
我们也可以用差商来近似它
f在x点的二阶导数
我们可以用x点的二阶中心差商来近似
即f''(x)近似的等于
f(x+h)-2f(x)+f(x-h)
除以h的平方
完全类似的
我们可以利用Taylor展开
得到二阶中心差商公式
它的截断误差
即为负的十二分之h平方
f的四阶导数在某一点η的值
这个时候
我们只需要把f(x+h)和f(x-h)
在x点
做更高阶的Taylor展开就可以得到
接下来 我们来看第二种
数值求导公式 即插值型的求导公式
所谓插值型的求导公式
它是以插值多项式的导数
作为函数导数的近似
也即我们对一个函数f(x)
可以构造它的一个插值多项式
φn
这个时候f在x点的导数
就近似的等于φn在x点的导数
由第五章我们知道
插值函数 它的误差估计
f(x)-ψn(x)
就等于f它的n+1阶导数在某一点ξ的值
除以n+1的阶乘
再乘以ωn+1(x)
这个时候
我们对插值的误差公式 两边同时求导
即可以得到插值型微分 它的误差公式
即f'(x)-φ'n(x)
等于n+1的阶乘的倒数
然后我们利用导数的乘法法则
乘以ωn+1(x)
乘上f它的n+1阶导数
在ξ点的值关于x的导数
再加上f的n+1阶导数在ξ的值乘以
ωn+1(x) 它的导数
在这个误差公式里面
由于对于任意的x属于ab
ξ是依赖于x而且是未知的
因此我们利用上面这个式子
很难估计误差
但是如果我们只求某个插值节点上的导数值
误差则可以估计
因为这个时候ωn+1(x)
它在所有的插值节点 都等于零
所以插值型的求导公式
通常用于求插值节点处的导数的近似值
也即f'(xi)-φn'(xi)
这个时候的误差就等于
f(n+1)阶导数
在ξ点的值除以n+1的阶乘
再乘以xi-xj
j从0到n所有的 这样的
因子的连乘
当我们的插值节点
选择的是等距节点的时候
即可以给出我们常用的数值微分公式
首先 我们来看两点公式
过x0和x1=x0+h
来做函数 f(x)的
一个一次多项式的插值L1(x)
对这个一次多项式插值
函数L1(x)
求导
那即可以得到f'(x0)
近似的等于L1它的导数
在x0点的值
那即f(x1)-f(x0)除以h
而这个数值微分公式
即是我们前面的向前差商公式
我们也可以用插值函数L1在x1点的导数
来近似函数f在x1点的导数
这时候即可以得到f'(x1)
近似的等于f(x1)-f(x0)除以h
这个也即是向后差商公式
我们利用
我们的前面给出来的截断误差估计
即可以得出来f'(x0)-L1'(x0)
它的截断误差即为
二分之f''(ξ0)乘上x0-x1
也即
负的二分之f''(ξ0)乘上h
同样 我们可以得到x1点的这个
数值微分公式的截断误差
即
f'(x1)-L1'(x1)
等于二分之f''(ξ1)乘上h
接下来我们来看一下 如果我选择
三个节点来进行插值
即x0 x1和x2
我可以构造函数f(x)
它的一个二次多项式插值
L2(x)
然后我们对L2来求一阶导数
那这个时候
f在x0点的一阶导数近似的就等于
它的二次多项值插值L2
在x0点的一阶导数
计算出来可以得到
f'(x0)近似的等于
2h分之一
乘上-3f(x0)+4f(x1)-f(x2)
我们用二次多项式插值在x1点的一阶导数
近似f在x1点的一阶导数
即得到f'(x1)等于2h分之
负的f(x0)+f(x2)
我们也可以得到
f'(x2)近似的等于
L2'(x2)等于2h分之一
f(x0)-4f(x1)+3f(x2)
那这样的话
我们就可以用二次插值多项式的一阶导数
近似f的一阶导数
得到对应的这三个数值微分公式
第二个中间的这个数值微分公式
即我们常用的中心差商公式
代入前面的截断误差公式
即可以得出来x0点 x1点和x2点
用二次插值多项式的一阶导数来近似
函数的一阶导数时对应的截断误差
这个时候x0点的截断误差是
三分之f三阶导数
在某点ξ0的值乘上h的平方
它是大O(h)平方阶的
x1和x2这两点的截断误差
也是大O(h)平方阶的
我们也可以用插值函数
它的二阶导数
来近似函数f 在
节点的二阶导数
即f''(xi)近似的等于
L2它的二阶导数在xi点的值
那这个时候
二次插值求二阶导数 即为常数
即h平方分之
f(x0)-2f(x1)+f(x2)
我们可以用这个常数值
来近似x0x1x2这三个点的二阶导数值
第三种数值微分公式
即利用样条插值函数来求数值微分
我们设S(x)是f(x)的一个
三次样条插值函数
由三次样条插值函数的性质
可以知道
用三次样条插值函数的导数
或者二阶导数
来近似函数的导数或二阶导数
有如下的误差估计
这个时候
我们由这个误差估计式可以看出来
当k取
1的时候
也就是说一阶导数来近似的话
它的误差阶是大O(h)的三次方
而二阶导数的近似
可以达到
大O(h)的平方阶
最后我们来总结一下
我们本节给出来的
常用的数值微分公式
对于x点的一阶导数
我们可以用x点的向前差商来近似
也可以用x点的向后差商来近似
这两个数值微分公式
它的截断误差都是大O(h)阶的
我们用二次多项式的
一阶导数来近似函数
在插值节点的一阶导数
即可以得出如下三个数值微分公式
即f'(x0)近似的等于
2h分之一
-3f(x0)+4f(x1)-f(x2)
f'(x1)近似的等于2h分之一
-f(x0)+f(x2)
f'(x2)近似的等于
2h分之一
f(x0)-4f(x1)+3f(x2)
这三个一阶导数的数值微分公式
它的截断误差 都是大O(h)平方阶的
对于二阶导数
我们最常用的是二阶中心差商
近似公式
即f''(x)
近似的等于f(x+h)-2f(x)
加上f(x-h)
除以h的平方
这个数值微分公式
它的截断误差 也是大O(h)平方阶的
好的 今天我们的课到此结束
谢谢大家
-1.1 误差的概念
--误差的概念
-1.2 误差的传播
--误差的传播
-第一章 习题
--第一章 习题
-2.1 Gauss消去法
--Gauss消去法
-2.2 矩阵的三角分解
--矩阵的三角分解
-2.3 直接三角分解法
--直接三角分解法
-2.4 平方根法和改进的平方根法
-2.5 误差分析(1)向量和矩阵范数
-2.6 误差分析(2)条件数
-第二章 习题
--第二章 习题
-3.1 Jacobi迭代法和Gauss-Seidel 迭代法
-3.2 迭代法收敛性的判别
-3.3 误差分析
--误差分析
-第三章 习题
--第三章 习题
-4.1 幂法
--幂法
-4.2 反幂法
--反幂法
-第四章 习题
--第四章 习题
-5.1 多项式插值理论
--多项式插值理论
-5.2 Lagrange 插值多项式
-5.3 Newton 插值多项式(1)差商型
-5.4 Newton 插值多项式(2)差分型
-5.5 分段线性插值
--分段线性插值
-5.6 Hermite 插值
-第五章 习题
--第五章 习题
-6.1 数据拟合的最小二乘法(1)多项式拟合
-6.2 数据拟合的最小二乘法(2)其他函数拟合
-6.3 正交多项式
--正交多项式
-6.4 函数的最佳平方逼近
-第六章 习题
--第六章 习题
-7.1 数值微分
--数值微分
-7.2 Newton-Cotes求积公式(1)数值积分的基本思想、Newton-Cotes公式
--Newton-Cotes求积公式(1)数值积分的基本思想、Newton-Cotes公式
-7.3 Newton-Cotes求积公式(2)误差估计
-7.4 复化求积公式
--复化求积公式
-7.5 Romberg求积公式、Gauss型求积公式
-第七章 习题
--第七章 习题
-8.1 Romberg求积公式、Gauss型求积公式
-8.2 简单迭代法的加速、牛顿法与弦截法
-第八章 习题
--第八章 习题
-9.1 常微分方程数值解法概述
-9.2 Euler方法及其改进方法
-第九章 习题
--第九章 习题