用多种方法解下述初值问题,并与其准确解进行比较.
解取步长.用各方法进行计算对应结果及绝对误差见表(1)、(2)、(3).
表(1)
xn
欧拉公式
改进的欧拉公式
四阶标准龙格—库塔公式
yn
误差
yn
误差
yn
误差
0.0
1.000000
1
1
0.1
1.000000
1.0050000
1.00483750
0.2
1.010000
1.019025
1.01873090
0.3
1.029000
1.041218
1.04081842
0.4
1.056100
1.070802
1.07032029
0.5
1.090490
1.107076
1.10653093
0.6
1.131441
1.149404
1.14881193
表(2)四阶阿当姆斯公式
n
xn
显示公式
隐式公式①
yn
误差
yn
误差
3
0.3
取自准确解
—
1.04081801
4
0.4
1.07032292
1.07031966
5
0.5
1.10653548
1.10653041
6
0.6
1.14881481
1.14881101
备注
y1,y2,y3取自准确解
y1,y2取自准确解
①对本题关于y为线性,代入隐式公式时,可解出yn+1,因此可直接求隐式公式之解.
表(3)四阶阿当姆斯预测—校正公式
n
xn
显示公式
隐式公式①
Yn
误差
yn
误差
4
0.4
1.07031992
1.07032014
5
0.5
1.10653027
1.10653077
6
0.6
1.14881103
1.14881175
备注
y1,y2,y3由四阶标准龙格—库塔公式提供
对比以上各表数据可以看到,在相同步长下求解同一问题时,方法的阶数越高,解的精度也越高,一阶的欧拉公式精度最低,而四阶标准龙格—库塔公式的精度又大大高于改进的欧拉公式(二阶龙格—库塔法).同是四阶阿当姆斯方法、显示的精度略低于隐式,这可以从式(8-27)、式(8-28)局部截断误差系数预料到.同是阿当姆斯预测—校正系统,带误差修正的精度又高于不带误差修正的.
从计算量上看,四阶龙格—库塔法计算量最大,每前进一步要计算4次函数值f,而与它精度差不多的带误差修正的阿当姆斯预测—校正法,每前进一步只要计算两次函数值f,所以后者是可取的.但它是四步法,不能自开始,必须用其它方法提供出发值,程序略复杂些.
例2步长的计算结果的影响
用欧拉公式求下述初值问题在x=1处的近似解,并与准确解y(1)=1比较.
解分别取步长进行计算,结果见下表.由表中数据可见,步长不同效果大不一样,当时结果完全失真,而取比计算量增加了十倍,但解的精度却基本一样,可见取太浪费计算量了.
步长h
y(1)的计算值
上述结果差异很大的原因在于欧拉公式的绝对稳定区间为(-2,0)步长h应满足,对本题,,故应取h满足
即
可见取时欧拉公式是数值不稳定的,导致结果失真,而取和都满足稳定性要求,可用于求解.
由此例可见,求解微分方程时一定要注意步长的选取,过大则导致解的失真,过小又会使计算量大增.究竟取多大步长才合适,不仅取决于所采用的数值方法,还决定于待解微分方程本身的特性.
例3取步长h=0.5,用四阶龙格—库塔公式求解常微方程初值问题
解方程右端顶为
四阶龙格—库塔公式求解初值问题算法
第一步:输入初值
第二步:计算;
第三步:计算
第四步:计算
第五步:计算
第六步:计算
第七步:判断,若n