《数值方法》实验报告
1
数值微分计算方法实验
郑发进 2012042020022
【摘要】数值微分(numerical differentiation)根据函数在一些离散点的函数值,推算它在某点的导数或高阶导数的近似值的方法。通常用差商代替微商,或者用一个能够近似代替该函数的较简单的可微函数(如多项式或样条函数等)的相应导数作为能求导数的近似值。例如一些常用的数值微分公式(如两点公式、三点公式等)就是在等距步长情形下用插值多项式的导数作为近似值的。此外,还可以采用待定系数法建立各阶导数的数值微分公式,并且用外推技术来提高所求近似值的精确度。当函数可微性不太好时,利用样条插值进行数值微分要比多项式插值更适宜。如果离散点上的数据有不容忽视的随机误差,应该用曲线拟合代替函数插值,然后用拟合曲线的导数作为所求导数的近似值,这种做法可以起到减少随机误差的作用。数值微分公式还是微分方程数值解法的重要依据。
关 键 词 中心差分公式;理查森外推法;牛顿多项式微分;
一、实验目的
1.通过本次实验熟悉并掌握各种数值微分算法。
2.掌握如何通过程序设计实现数值微分算法,从而更好地解决实际中的问题。
二、实验原理
1. 精度为O(h2)的中心差分公式:
设f?C3?a,b?,且x?h,x,x?h??a,b?,则
f'?x??f?x?h??f?x?h?
2h 而且存在数c?c?x???a,b?,满足
《数值方法》实验报告
2
f'?x??f?x?h??f?x?h??Etrunc?f,h?
2h 其中
h2f?3??c?Etrunc?f,h????O?h2?
6 项Etrunc?f,h?称为截断误差。
2. 精度为O(h4)的中心差分公式:
设f?C5?a,b?,且x?2h,x?h,x,x?h,x?2h??a,b?,则
f'?x??f?x?h??f?x?h?
2h 而且存在数c?c?x???a,b?,满足
?f?x?2h??8f?x?h??8f?x?h??f?x?2h?f'?x??
12h 其中
h4f???c?Etrunc?f,h???O?h4?
305 项Etrunc?f,h?称为截断误差。
3.理查森外推法:
利用低阶公式推出高阶求解数值微分的公式,定理如下:
设f'?x0?的两个精度为O(h2k)的近似值分别为Dk?1?h?和Dk?1?2h?,而且
它们满足
f'?x0??Dk?1?h??c1h2k?c2h2k?2? 和
f'?x0??Dk?1?2h??4kc1h2k?4k?1c2h2k?2? 这样可得到改进的近似值表达式
《数值方法》实验报告
3
f'?x0??Dk?h??O(h2k?2)?Dk?1?h??Dk?1?h??Dk?1?2h?|?O(h2k?2)k4?1
4. 牛顿多项式微分:利用f?t?的N?1个插值点可得近似f?t?的N次牛顿多项式PN?t?,其可表示为
PN?t??a0?a1?t?t0??a2?t?t0??t?t1??则PN?t?的导数可以表示为
P'N?t??a1?a2??t?t0???t?t1????aN?t?t0??t?tN?1?
?1?aN??Nj?0?t?ti?
k?0j?kN?1 由此可知在xM,M?0,1,,N处的导数值
?1i?0?aM??Nj?0?t?ti??aM?1?i?M?1?t?ti??k?0j?kM?10?aN?ii??N?1?t?ti?i?MP'N?t??a1?a2??t?t0???t?t1???
三、实验内容
1.P260 1
用程序6.1求解下列函数在x处的倒数近似值,精度为小数点后13位。注:有必要改写程序中的max1的值和h的初始值。
?a?f?x??60x45?32x33?233x5?47x2?77;x?1??5?sin?x???1?5?cos?;x???b?f?x??tan??1?x2???3???? ?c?f?x??sin?cos?1x??;x?1/23?d?f?x??sin?x3?7x2?6x?8?;x??e?f?x??xx;x?0.0001
x1?52
P260 2
修改程序6.1,实现精度为O(h4)的中心差分公式(10)。用这个程序求