手写欧拉方法(Euler‘s method)解常微分方程(ODE)

问题 1 1 1 d y d x = y \frac{dy}{dx}=y dxdy=y

给定方程 d y d x = y , y ( 0 ) = 1 \frac{dy}{dx}=y, y(0)=1 dxdy=y,y(0)=1,请用 Δ x = 1 \Delta x=1 Δx=1,求 y ( 2 ) y(2) y(2) 的值。

手写求解过程

我们手写出整个欧拉方法逼近的过程数据表。表格的内容包括三个部分: x x x y y y d y d x \frac{dy}{dx} dxdy

y ( 0 ) y(0) y(0)

根据题目,我们知道 x = 0 x=0 x=0 的时候 y ( 0 ) = 1 y(0)=1 y(0)=1,对应的 d y d x = y \frac{dy}{dx}=y dxdy=y,我们带入对应的数据可得: d y d x = 1 \frac{dy}{dx}=1 dxdy=1。这样对应的表格为:

x x x y y y d y d x \frac{dy}{dx} dxdy
0 0 0 1 1 1 1 1 1

y ( 1 ) y(1) y(1)

根据题目, Δ x = 1 \Delta x=1 Δx=1,因此 x = 0 + 1 = 1 x=0+1=1 x=0+1=1,对应的 y ( 1 ) = y ( 0 ) + Δ x ∗ d y d x 0 = 1 + 1 ∗ 1 = 2 y(1)=y(0)+\Delta x*\frac{dy}{dx}_0=1+1*1=2 y(1)=y(0)+Δxdxdy0=1+11=2,将 x x x y y y 的数据带入到 d y d x = y \frac{dy}{dx}=y dxdy=y,可得对应的 d y d x = 2 \frac{dy}{dx}=2 dxdy=2。这样表格更新为:

x x x y y y d y d x \frac{dy}{dx} dxdy
0 0 0 1 1 1 1 1 1
1 1 1 2 2 2 2 2 2

y ( 2 ) y(2) y(2)

根据题目, Δ x = 1 \Delta x=1 Δx=1,因此 x = 1 + 1 = 2 x=1+1=2 x=1+1=2,对应的 y ( 2 ) = y ( 1 ) + Δ x ∗ d y d x 1 = 2 + 1 ∗ 2 = 4 y(2)=y(1)+\Delta x*\frac{dy}{dx}_1=2+1*2=4 y(2)=y(1)+Δxdxdy1=2+12=4,将 x x x y y y 的数据带入到 d y d x = y \frac{dy}{dx}=y dxdy=y,可得对应的 d y d x = 4 \frac{dy}{dx}=4 dxdy=4。这样表格更新为:

x x x y y y d y d x \frac{dy}{dx} dxdy
0 0 0 1 1 1 1 1 1
1 1 1 2 2 2 2 2 2
2 2 2 4 4 4 4 4 4

这样,我们就手工计算出 y ( 2 ) = 4 y(2)=4 y(2)=4

问题 2 2 2 d y d x = x − y − 2 \frac{dy}{dx}=x-y-2 dxdy=xy2

给定 ODE: d y d x = x − y − 2 , f ( − 1 ) = 3 \frac{dy}{dx}=x-y-2,f(-1)=3 dxdy=xy2,f(1)=3,要求用三步估算 f ( 2 ) f(2) f(2) 的数据。

手写求解过程

计算 Δ x \Delta x Δx

根据题目要求,我们可以计算出 Δ x \Delta x Δx Δ x = 2 − ( − 1 ) 3 = 1 \Delta x=\frac{2-(-1)}{3}=1 Δx=32(1)=1

f ( − 1 ) f(-1) f(1) 数据

根据题目, f ( − 1 ) = 3 f(-1)=3 f(1)=3 d y d x = x − y − 2 \frac{dy}{dx}=x-y-2 dxdy=xy2,代入对应的 x x x y y y,可得 d y d x = x − y − 2 = ( − 1 ) − 3 − 2 = − 6 \frac{dy}{dx}=x-y-2=(-1)-3-2=-6 dxdy=xy2=(1)32=6,这样对应的表格为:

x x x y y y d y d x \frac{dy}{dx} dxdy
− 1 -1 1 3 3 3 − 6 -6 6

计算 f ( 0 ) f(0) f(0)

f ( 0 ) = f ( − 1 ) + Δ x ∗ d y d x x = − 1 = 3 + 1 ∗ ( − 6 ) = − 3 f(0)=f(-1)+\Delta x*\frac{dy}{dx}_{x=-1}=3+1*(-6)=-3 f(0)=f(1)+Δxdxdyx=1=3+1(6)=3 d y d x = x − y − 2 = 0 − ( − 3 ) − 2 = 1 \frac{dy}{dx}=x-y-2=0-(-3)-2=1 dxdy=xy2=0(3)2=1。这样对应的表格为:

x x x y y y d y d x \frac{dy}{dx} dxdy
− 1 -1 1 3 3 3 − 6 -6 6
0 0 0 − 3 -3 3 1 1 1

计算 f ( 1 ) f(1) f(1)

f ( 1 ) = f ( 0 ) + Δ x ∗ d y d x x = 0 = − 3 + 1 ∗ 1 = − 2 f(1)=f(0)+\Delta x*\frac{dy}{dx}_{x=0}=-3+1*1=-2 f(1)=f(0)+Δxdxdyx=0=3+11=2 d y d x = x − y − 2 = 1 − ( − 2 ) − 2 = 1 \frac{dy}{dx}=x-y-2=1-(-2)-2=1 dxdy=xy2=1(2)2=1。这样对应的表格为:

x x x y y y d y d x \frac{dy}{dx} dxdy
− 1 -1 1 3 3 3 − 6 -6 6
0 0 0 − 3 -3 3 1 1 1
1 1 1 − 2 -2 2 1 1 1

计算 f ( 2 ) f(2) f(2)

f ( 2 ) = f ( 1 ) + Δ x ∗ d y d x x = 1 = − 2 + 1 ∗ 1 = − 1 f(2)=f(1)+\Delta x*\frac{dy}{dx}_{x=1}=-2+1*1=-1 f(2)=f(1)+Δxdxdyx=1=2+11=1 d y d x = x − y − 2 = 2 − ( − 1 ) − 2 = 1 \frac{dy}{dx}=x-y-2=2-(-1)-2=1 dxdy=xy2=2(1)2=1。这样对应的表格为:

x x x y y y d y d x \frac{dy}{dx} dxdy
− 1 -1 1 3 3 3 − 6 -6 6
0 0 0 − 3 -3 3 1 1 1
1 1 1 − 2 -2 2 1 1 1
2 2 2 − 1 -1 1 1 1 1

这样,我们计算出 f ( 2 ) = − 1 f(2)=-1 f(2)=1

问题 3 3 3 d y d x = 3 x + 2 y + 1 , y ( 0 ) = k , Δ x = 2 \frac{dy}{dx}=3x+2y+1,y(0)=k,\Delta x=2 dxdy=3x+2y+1,y(0)=k,Δx=2

给定 ODE 方程为: d y d x = 3 x + 2 y + 1 , y ( 0 ) = k , Δ x = 2 \frac{dy}{dx}=3x+2y+1,y(0)=k,\Delta x=2 dxdy=3x+2y+1,y(0)=k,Δx=2,使用欧拉方法计算出 y ( 2 ) ≈ 1 y(2)\approx 1 y(2)1,求 k k k 的值。

手写求解过程

y ( 0 ) y(0) y(0) 数据

d y d x x = 0 , y = k = 3 x + 2 y + 1 = 3 ∗ 0 + 2 ∗ k + 1 = 2 k + 1 \frac{dy}{dx}_{x=0,y=k}=3x+2y+1=3*0+2*k+1=2k+1 dxdyx=0,y=k=3x+2y+1=30+2k+1=2k+1。这样对应的表格为:

x x x y y y d y d x \frac{dy}{dx} dxdy
0 0 0 k k k 2 k + 1 2k+1 2k+1

计算 y ( 2 ) y(2) y(2)

f ( 2 ) = f ( 0 ) + Δ x ∗ d y d x x = 1 = ( k ) + 2 ∗ ( 2 k + 1 ) = 5 k + 2 f(2)=f(0)+\Delta x*\frac{dy}{dx}_{x=1}=(k)+2*(2k+1)=5k+2 f(2)=f(0)+Δxdxdyx=1=(k)+2(2k+1)=5k+2,同时,题目告诉我们 y ( 2 ) ≈ 1 y(2)\approx 1 y(2)1,也就是 5 k + 2 = 1 ⇒ k = − 1 5 = − 0.2 5k+2=1 \Rightarrow k=-\frac{1}{5}=-0.2 5k+2=1k=51=0.2

问题 4 4 4:给定 f ( 0 ) = 1 f(0)=1 f(0)=1 和对应的导数 f ′ f' f,求 f ( 3 ) f(3) f(3)

给定 f ( 0 ) = 1 f(0)=1 f(0)=1,导数表如下,求 f ( 3 ) f(3) f(3)

x 0 1 2 3
f ′ ( x ) f'(x) f(x) 2 -1 1 3

本题和上面的问题相比,不需要计算

手写求解过程

本题给出了导数表 f ′ ( x ) f'(x) f(x),我们可以计算出 Δ y n \Delta y_n Δyn,根据导数定义, Δ y n ≈ f ′ ( x n ) Δ x \Delta y_n \approx f'(x_n)\Delta x Δynf(xn)Δx

计算 Δ x \Delta x Δx

根据题目给出的导数表,我们知道 Δ x = 1 \Delta x=1 Δx=1

f ( 0 ) f(0) f(0) 数据

Δ y 0 = f ′ ( x 0 ) Δ x 0 \Delta y_0 = f'(x_0)\Delta x_0 Δy0=f(x0)Δx0 数据代入可得: Δ y 0 = f ′ ( x 0 ) Δ x = 2 ∗ 1 = 2 \Delta y_0 = f'(x_0)\Delta x=2*1=2 Δy0=f(x0)Δx=21=2

n n n x n x_n xn y n y_n yn f ′ ( x n ) f'(x_n) f(xn) Δ y n \Delta y_n Δyn
0 0 0 0 0 0 1 1 1 2 2 2 2 2 2

计算 f ( 1 ) f(1) f(1)

Δ y 1 = f ′ ( x 1 ) Δ x = − 1 ∗ 1 = − 1 \Delta y_1 = f'(x_1)\Delta x=-1*1=-1 Δy1=f(x1)Δx=11=1

n n n x n x_n xn y n y_n yn f ′ ( x n ) f'(x_n) f(xn) Δ y n \Delta y_n Δyn
0 0 0 0 0 0 1 1 1 2 2 2 2 2 2
1 1 1 1 1 1 3 3 3 − 1 -1 1 − 1 -1 1

计算 f ( 2 ) f(2) f(2)

Δ y 2 = f ′ ( x 2 ) Δ x = 1 ∗ 1 = 1 \Delta y_2 = f'(x_2)\Delta x=1*1=1 Δy2=f(x2)Δx=11=1

n n n x n x_n xn y n y_n yn f ′ ( x n ) f'(x_n) f(xn) Δ y n \Delta y_n Δyn
0 0 0 0 0 0 1 1 1 2 2 2 2 2 2
1 1 1 1 1 1 3 3 3 − 1 -1 1 − 1 -1 1
2 2 2 2 2 2 2 2 2 1 1 1 1 1 1

计算 f ( 3 ) f(3) f(3)

Δ y 3 = f ′ ( x 3 ) Δ x = 3 ∗ 1 = 3 \Delta y_3 = f'(x_3)\Delta x=3*1=3 Δy3=f(x3)Δx=31=3

n n n x n x_n xn y n y_n yn f ′ ( x n ) f'(x_n) f(xn) Δ y n \Delta y_n Δyn
0 0 0 0 0 0 1 1 1 2 2 2 2 2 2
1 1 1 1 1 1 3 3 3 − 1 -1 1 − 1 -1 1
2 2 2 2 2 2 2 2 2 1 1 1 1 1 1
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3

因此对应的 f ( 3 ) = 3 f(3)=3 f(3)=3

猜你喜欢

转载自blog.csdn.net/justidle/article/details/112788269
今日推荐