偏微分方程数值解例题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、改进的Euler 方法
梯形方法的迭代公式(1.10)比Euler 方法精度高,但其计算较复杂,在应用公式(1.10)进行计算时,每迭代一次,都要重新计算函数),(y x f 的值,且还要判断何时可以终止或转下一步计算.为了控制计算量和简化计算法,通常只迭代一次就转入下一步计算.具体地说,我们先用Euler 公式求得一个初步的近似值1+n y ,称之为预测值,然后用公式(1.10)作一次迭代得1+n y ,即将1+n y 校正一次.这样建立的预测-校正方法称为改进的Euler 方法:
预测: ),,(1n n n n y x hf y y +=+ 校正
:
)].,(),([2
111+++++=n n n n n n y x f y x f h
y y
(1.15)
这个计算公式也可以表示为
11(,),
(,),
1().
2p n n n
c n n p n p c
y y hf x y y y hf x y y y y ++⎧=+⎪⎪=+⎪⎨
⎪=+⎪⎪⎩
例1 取步长0.1h =,分别用Euler 方法及改进的Euler 方法求解初值问题
d (1),01,
d (0) 1.
y
y xy x x
y ⎧=-+≤≤⎪⎨⎪=⎩ 解 这个初值问题的准确解为()1(21)x
y x e x =--. 根据题设知
).1(),(xy y y x f +-=
(1) Euler 方法的计算式为
)],1([1.01n n n n n y x y y y +⨯-=+
由1)0(0==y y , 得
,9.0)]101(1[1.011=⨯+⨯⨯-=y
,8019.0)]9.01.01(9.0[1.09.02=⨯+⨯⨯-=y
这样继续计算下去,其结果列于表9.1.
(2) 改进的Euler 方法的计算式为
110.1[(1)],0.1[(1)],
1(),
2p n n n n c n p n p n p c y y y x y y y y x y y y y ++⎧=-⨯+⎪=-⨯+⎪⎪⎨
⎪=+⎪⎪⎩
由1)0(0==y y ,得
110.1[1(101)]0.9,10.1[0.9(10.10.9)]0.9019,1
(0.90.9019)0.900952
p c y y y ⎧
=-⨯⨯+⨯=⎪⎪
=-⨯⨯+⨯=⎨⎪⎪=+=⎩ 20.900950.1[0.90095(10.10.90095)]0.80274,0.900950.1[0.80274(10.20.80274)]0.80779,1
(0.802740.80779)0.805262
p c y y y ⎧
=-⨯⨯+⨯=⎪⎪
=-⨯⨯+⨯=⎨⎪⎪=+=⎩ 这样继续计算下去,其结果列于表9.1.
从表9.1可以看出,Euler 方法的计算结果只有2位有效数字,而改进的Euler 方法确有3位有效数字,这表明改进的Euler 方法的精度比Euler 方法高.
例2 试用Euler 方法、改进的Euler 方法及四阶经典R-K 方法在不同步长下计算初值问题
⎪⎩⎪⎨⎧=≤≤+-=1
)0(,
10),1(d d y x xy y x
y
在0.2、0.4、0.8、1.0处的近似值,并比较它们的数值结果.
解 对上述三种方法,每执行一步所需计算)1(),(xy y y x f +-=的次数分别为1、2、4。为了公正起见,上述三种方法的步长之此应为4:2:1。因此,在用Euler 方法、改进的Euler 方法及四阶经典R-K 方法计算0。2、0。4、0。8、1。0处的近似值时,它们的步长应分别取为0。05、0。1、0。2,以使三种方法的计算量大致相等。
Euler 方法的计算格式为
)].1([05.01n n n n n y x y y y +⨯-=+
改进的Eluer 方法的计算格式为
⎪⎪⎪
⎩
⎪
⎪⎪⎨⎧
+=+⨯-=+⨯-=++).(21)],1([1.0)],1([1.011c p n p n p n c n n n n p y y y y x y y y y x y y y 四阶经典R-K 方法的计算格式为
⎪⎪⎪⎪
⎪
⎩⎪
⎪⎪⎪
⎪⎨⎧
⨯+++⨯+-=⨯+++⨯+-=⨯+++⨯+-=+-=+++⨯+=+)]
2.0)(2.0(1)[2.0()],2
2.0)(22.0(1)[22.0()],22.0)(22.0(1)[22.0(),1(),22(6
2.0334223
112143211
k y x k y k k y x k y k k y x k y k y x y k k k k k y y n n n n n n n n n n n n n n 初始值均为1)0(0==y y ,将计算结果列于表9.2.
从表9.2可以看出,在计算量大致相等的情况下,Euler 方法计算的结果只有2位有效数字,改进的Euler 方法计算的结果有3位有效数字,而四阶经典R-K 方法计算的结果却有5位有效数字,这与理论分析是一致的。例1和例2的计算结果说明,在解决实际问题时,选择恰当的算法是非常必要的。
需要指出的是Runge-Kutta 方法的基于Taylor 展开法,因而要求解具有足够的光滑性。如果解的光滑性差,使用四阶Runge-Kutta 方法求得数值解的精度,可能不如改进的Euler 方法精度高。因此,在实际计算时,要根据具体问题的特性,选择合适的算法。
一、应用向前欧拉法和改进欧拉法求由如下积分