数值微分计算方法实验
则 PN t 的导数可以表示为
N1
P 'N t a1 a2 t t0 t t1 aN
N 1 j0
t ti
k0 jk
由此可知在 x M , M 0,1,, N 处的导数值
M 1
P 'N t a1 a2 t t0 t t1 aM
2)令 A [ f (t0 ), f (t1),, f (tN )] , for j=1 upto N+1
8
《数值方法》实验报告
for i=j+1 upto N+1
A(i) ( A(i) A(i 1)) / ti ti j
3)p=1, df (k) A2 ,
for n=2 upto N
Di
f
x 2hi 8 f
x hi 8 f
12hi
x hi
f
x 2hi
;
2) 近 似 导 数 值 序 列 间 隔 Ei Di Di1 , 相 对 误 差 序 列
Ri 2Ei / Di Di1 。
3) 若 Ei Ei1 或 Ri toler ,则停止计算循环;
a f x 60x45 32x33 233x5 47x2 77; x 1 3
b f x tan cos
5 sin 1 x2
x
;
x
1 3
5
c f x sin cos 1 x ; x 1/ 2
Dk 1
h
Dk
1
h
Dk
4k 1
1
2h
|
O(h
2
k
2)
4. 牛顿多项式微分:利用 f t 的 N 1个插值点可得近似 f t 的 N 次牛顿
多项式 PN t ,其可表示为 PN t a0 a1 t t0 a2 t t0 t t1 aN t t0 t tN1
6
《数值方法》实验报告
Step5:将 Dk , Ek , Rk , k 0,1, n 储存到向量 D, E, R 中列表输出。
2.P260 2 计算精度为 O(h4 ) 导数近似值的算法.
依据精度为 O(h2 ) 的中心差分公式,利用步长序列。
Step1:输入函数 f x ,要计算的导数的横坐标 x 及相对误差容限 toler,步
它们满足
f ' x0 Dk1 h c1h2k c2h2k2
和
f ' x0 Dk1 2h 4k c1h2k 4k1c2h2k2
这样可得到改进的近似值表达式
3
《数值方法》实验报告
f
' x0 Dk
h O(h 2k2)
Step1:输入 xi 及其对应的函数值 f xi , i 0,1,, N
Step2:for k=0 upto N,计算 xM 处的近似导数值 P 'N xM
1) t0 xM , ti1 xi ,1 i M 1,ti xi , M 1 i N ,
(2)P260 2 使用精度 O(h4 ) 的中心差分公式求解 (3)P260 3 使用理查森外推法求解
2.P270 1
计算 N 阶牛顿插值多项式 PN x 的在插值点的导数值 P 'N xM , M 0,1,, N
5
《数值方法》实验报告
(二)实验算法
1.P260 1 计算精度为 O(h2 ) 导数近似值的算法.
1.P260 1 已知下列函数,用数值微分方法求解在 x 处的导数近似值,精度为小数点后 面的 13 位。
a f x 60x45 32x33 233x5 47x2 77; x 1 3
b
f
x
tan
cos
5 sin 1 x2
x
始步长 h0 ,计算行数上限 max ;
Step2:计算初始化量
1) 初始近似导数值 D0,0
f
x h0 f
2h0
x h0 ;
2) 初始误差 E0 0 ,初始相对误差 R0 1 ;
3) j 1 ;
Step3:计算出符合精度要求的近似导数值: 若 E j1 delta 且 Rj1 toler 且 j 1 max ,则进行下列计算,否则进
入 step4
1) hj hj1 / 2 , D j,0 f x h j f x h j 2h j ;
For k=1 upto j
D j,k
D j,k 1
D j,k 1 D j1,k 1 4k 1
2) 计算误差 E j D j, j D j 1, j 1
12h
其中
Etrunc
f
,
h
h4
f 5 30
c
O
h4
项 Etrunc f , h 称为截断误差。
3.理查森外推法:
利用低阶公式推出高阶求解数值微分的公式,定理如下:
设 f ' x0 的两个精度为 O(h2k ) 的近似值分别为 Dk1 h 和 Dk1 2h ,而且
12h1
x h1
f
x 2h1
并令近似导数值序列前两个初值 E0 0, E1 D1 D0 ,
相对误差序列前两个初值 R0 0, R1 2E1 / D1 D0 。
Step3:for i=1 upto max 1) 计算步长 hi hi1 / 10 时的近似导数值,
依据精度为 O(h2 ) 的中心差分公式,利用步长序列。
Step1:输入函数 f x ,要计算的导数的横坐标 x 及相对误差容限 toler,步
长序列长度 max ;
Step2:设置初始参量,初始步长 h0 , f x 在 x 处的近似导数值
D0
f
x h0 f
2h0
x h0
1
《数值方法》实验报告
数值微分计算方法实验
【摘要】数值微分(numerical differentiation)根据函数在一些离散点的函数 值,推算它在某点的导数或高阶导数的近似值的方法。通常用差商代替微商,或 者用一个能够近似代替该函数的较简单的可微函数(如多项式或样条函数等)的 相应导数作为能求导数的近似值。例如一些常用的数值微分公式(如两点公式、 三点公式等)就是在等距步长情形下用插值多项式的导数作为近似值的。此外, 还可以采用待定系数法建立各阶导数的数值微分公式,并且用外推技术来提高所 求近似值的精确度。当函数可微性不太好时,利用样条插值进行数值微分要比多 项式插值更适宜。如果离散点上的数据有不容忽视的随机误差,应该用曲线拟合 代替函数插值,然后用拟合曲线的导数作为所求导数的近似值,这种做法可以起 到减少随机误差的作用。数值微分公式还是微分方程数值解法的重要依据。
长序列长度 max ;
Step2:设置初始参量,初始步长 h0 , f x 在 x 处的近似导数值来自D0f
x 2h0 8 f
x h0 8 f
12h0
x h0
f
x 2h0
令 h1
h0
/ 10 ,计算 D1
f
x 2h1 8 f
x h1 8 f
关 键 词 中心差分公式;理查森外推法;牛顿多项式微分;
一、实验目的
1.通过本次实验熟悉并掌握各种数值微分算法。 2.掌握如何通过程序设计实现数值微分算法,从而更好地解决实际中的问 题。
二、实验原理
1. 精度为 O(h2 ) 的中心差分公式:
设 f C3 a,b,且 x h, x, x h a,b ,则
4
《数值方法》实验报告
P260 3 使用程序 6.2 求解第 1 题中函数导数的近似值。精度为小数点后 13 位。注: 有必要改变 err,relerr 和 h 的初始值。
2.P270 1 修改程序 6.3,使得可用它计算 P(xM),M 1,2,...N 1。
四、实验结果及分析
(一)实验描述
Step4:输出 Di 即可得到符合精度要求的近似导数值,记录 n i 。 Step5:将 Dk , Ek , Rk , k 0,1, n 储存到向量 D, E, R 中输出。
3.P260 3 利用理查森外推法设计计算满足精度要求的近似导数值的算法,
7
《数值方法》实验报告
Step1:输入函数 f x ,自变量 x ,相对误差容限 toler,误差容限 delta,初
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 xa,b ,满足
f ' x f x 2h 8 f x h 8 f x h f x 2h
N 1 j0
t ti
aM
1
i0 iM
1
t ti
aN
i0 i N 1
t ti
k0 jk
iM
三、实验内容
1.P260 1 用程序 6.1 求解下列函数在 x 处的倒数近似值,精度为小数点后 13 位。注: 有必要改写程序中的 max1 的值和 h 的初始值。