偏微分方程数值解例题答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 方法精度高。因此,在实际计算时,要根据具体问题的特性,选择合适的算法。

一、应用向前欧拉法和改进欧拉法求由如下积分

相关文档
最新文档