数值分析第四次程序作业
PB09001057 孙琪
【问题】
编程实现用Richardson外推计算f’(x)的值,h=1.函数f(x)分别取
输出相应的三角阵列
D(0,0)
D(1,0) D(1,1)
D(2,0) D(2,1) D(2,2)
…….
D(M,0) D(M,1) D(M,2) … D(M,M) n
【Richardson外推法】
Richardson外推法利用了改进的数值公式
由此可以得到:
4
可记为:
用h/2替换上式中的h得到:
从而得到:
由此提高了计算L的更精确的公式。
由上述步骤可以不断增加精确度的公式,最终得到:
【Richardson外推算法】
由上面的分析就可以得到Richardson外推法的算法,在此不多做叙述了。
【实验】
通过Mathematica编写程序得到如下结果:
1.
即有:
n
D(n,0)
D(n,1)
D(n,2)
D(n,3)
0
0.346573590280
1
0.336472236621
0.333105118735
2
0.334108169326
0.333320146895
0.333334482105
3
0.333526435756
0.333332524566
0.333333349744
0.333333331770
可以看出结果越来越收敛于真实解:1/3,说明理查德森外推法成立。
2.
即有:
n
D(n,0)
D(n,1)
D(n,2)
D(n,3)
D(n,4)
0
-1.30619
1
6.46534
9.05584
2
3.209
2.12369
1.66154
3
2.87298
2.76094
2.80342
2.82155
4
2.8009
2.77688
2.77794
2.77753
2.77736
可以看出结果越来越收敛于真实解的数值解:
说明理查德森外推法成立。
3.
即有:
n
D(n,0)
D(n,1)
D(n,2)
D(n,3)
D(n,4)
D(n,5)
0
0.
1
0.
0.
2
0.
0.
0.
3
0.
0.
0.333335*********
0.
4
0.
0.
0.
0.333333*********
0.
5
0.
0.
0.
0.
0.
0.
可以看出结果越来越收敛于真实解:1/3,说明理查德森外推法成立。
【分析】
由上面的结果我们可以看出,当外推的次数越大所得到的结果也就越好,这是由于误差项的h的次数越来越大,此时虽然误差项前还有系数但相对于h幂方还是收敛快。这说明Richardson外推法收敛还是很快的,是一个较好的结果。
【Mathematica程序】
1.
2.
3.