在微积分中,函数的导数是通过极限定义的.当函数用表格给出时,就只能用数值方法求导数的近似值.
设已知函数f(x)在结点x0,x1,x2…处的值,根据导数的定义:
如果以差商/代替则有:
≈
其中可正可负,取h=,就有:≈
(
及 ≈
(
公式(
所以有:≈-
≈+
从而可知,前差公式和后差公式的截断误差均为R=O(h)。
若将和的泰勒展开式多取一项,便有:
+
-
两式相减,解出可得:≈
+
舍去余项,就得到一阶导数的中心差分公式:
≈
(
公式(
若将和的泰勒公式再多取一项,然后相加,就可以得到二阶导数的中心差分公式:≈
其截断误差也是:R=O(h2)。
例
|
0.00 |
0.90 |
0.99 |
1.00 |
1.01 |
1.10 |
2.00 |
|
1.000 |
2.460 |
2.691 |
2.718 |
2.746 |
3.004 |
7.389 |
解 应用中心差分公式(
取不同的步长h=1,0.1,0.01计算,结果见下表.
h |
的近似值 |
误差 |
1.0 |
|
0.476 |
0.1 |
|
0.002 |
0.01 |
|
0.032 |
由计算结果可以看出,当h由1.0减小到0.1时,精度大为提高,但继续减小到0.01时,精度却大幅度下降.在这里看到了计算的不稳定性.因此,在作数值微分时,应特别注意步长的合理选取.
上例的结果还表明,在使用插值多项式估计导数时,当插值多项式收敛于时,未必收敛于,所以使用高次插值多项式也不一定能提高精度.为此我们可以采用样条函数来估计导数,以提高计算精度.
回顾导数定义,得
例:用中点公式求在处的一阶导数(取四位有效数字计算)
分别取进行计算。
对于列表函数(只知道若干个点处函数值),考虑用插值函数的微分来作为近似。即先构造插值函数,以的导数近似代替的导数。
,与有关。
时,两点公式:
时,三点公式:
步长的选择应兼顾截断误差和舍入误差两方面。
例:已知,利用两点公式计算的近似值,依次取,。
解:两点公式
截断误差界为
利用三次样条插值多项式求近似导数
练习 5. 1
用复合辛普森公式求积分:的近似值时,为使截断误差R(Sn)≤0.5×10-4,问需要取多少个结点?
解 复合辛普森公式的截断误差为:R(Sn)=-
所以:∣R(Sn)∣=≤≤,
≈2.08441,2n≥4.16882
由于2n为偶数,因此取6,即应有7个结点。也可以用以下公式来做。
∣R(Sn)∣=∣∣≤≤,
h≤0.1×≈0.23876,n=2k=1/h≈4.1883, (h=(b-a)/n)
区间数k=3,结点数为2k+1,即应取7个结点。在实际应用中,一般取区间数k=4,则应该有9个结点。
(a=x0<x1<x2,x2<x3<x4,x4<x5<x6,x6<x7<x8=b)
注: =,h=