初值问题

《计算机数学基础(2)》辅导六

第14章 常微分方程的数值解法

一、重点内容 1. 欧拉公式:

(k=0,1,2,…,n-1)

局部截断误差是O(h2)。 2. 改进欧拉公式:

或表示成: 平均形式:

局部截断误差是O(h)。

3. 四阶龙格――库塔法公式:

3

0.5

其中 ?1=f(xk,yk);?2=f(xk+h,yk+

0.5

h?1);?3=f(xk+

0.5

h,yk+

0.5

h?2);

?4=f(xk+h,yk+h?3)

局部截断误差是O(h5)。

二、实例

例1 用欧拉法解初值问题

取步长h=0.2。计算过程保留4位小数。

解 h=0.2,f(x,y)=-y-xy2。首先建立欧拉迭代格式

=0.2yk(4-xkyk) (k=0,1,2) 当k=0,x1=0.2时,已知x0=0,y0=1,有

y(0.2)≈y1=0.2×1(4-0×1)=0.8

当k=1,x2=0.4时,已知x1=0.2,y1=0.8,有

y(0.4)≈y2=0.2×0.8×(4-0.2×0.8)=0.6144

当k=2,x3=0.6时,已知x2=0.4,y2=0.6144,有

y(0.6)≈y3=0.2×0.6144×(4-0.4×0.6144)=0.4613

例2 用欧拉预报-校正公式求解初值问题

取步长h=0.2,计算 y(1.2),y(1.4)的近似值,小数点后至少保留5位。

解 步长h=0.2,此时f(x,y)=-y-ysinx 欧拉预报-校正公式为:

2

有迭代格式:

当k=0,x0=1,y0=1时,x1=1.2,有

=y0(0.8-0.2y0sinx0)=1×(0.8-0.2×1sin1)=0.63171

y(1.2)≈y1

=1×(0.9-0.1×1×sin1)-0.1(0.63171+0.631712sin1.2)=0.71549 当k=1,x1=1.2,y1=0.71549时,x2=1.4,有

=y1(0.8-0.2y1sinx1)=0.71549×(0.8-0.2×0.71549sin1.2) =0.47697

y(1.4)≈y2

=0.71549×(0.9-0.1×0.71549×sin1.2) -0.1(0.47697+0.476972sin1.4) =0.52611

例3 写出用四阶龙格――库塔法求解初值问题

的计算公式,取步长h=0.2计算y(0.4)的近似值。至少保留四位小数。

解 此处f(x,y)=8-3y,四阶龙格――库塔法公式为

其中 ?1=f(xk,yk);?2=f(xk+

0.5

h,yk+

0.5

h?1);?3=f(xk+

0.5

h,yk+

0.5

h?2);

?4=f(xk+h,yk+h?3)

本例计算公式为:

其中 ?1=8-3yk;?2=5.6-2.1yk; ?3=6.32-2.37yk;?4=4.208+1.578yk

=1.2016+0.5494yk (k=0,1,2,…)

当x0=0,y0=2,

y(0.2)≈y1=1.2016+0.5494y0=1.2016+0.5494×2=2.3004 y(0.4)≈y2=1.2016+0.5494y1=1.2016+0.5494×2.3004=2.4654

例4 对初值问题

y(0)=1,证明用梯形公式求得的近似解为

并证明当步长h?0时,yn?e-x

证明 解初值问题的梯形公式为

∵ f(x,y)=-y ∴

整理成显式

反复迭代,得到

∵ y0=1 ∴

若x>0,为求y(x)的近似值,用梯形公式以步长h经过n步计算得到x,故x=nh,有

例5 选择填空题:

1. 取步长h=0.1,用欧拉法求解初值问题

的计算公式是

答案:

,k=0,1,2,…,y0=1

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4