Euler方法
提出问题
对于以下一个常微分方程
y
′
(
x
)
=
f
(
x
,
y
(
x
)
)
y
(
a
)
=
y
0
\begin{aligned} &y'(x)=f(x,y(x))\\ &y(a)=y_{0} \end{aligned}
y′(x)=f(x,y(x))y(a)=y0
求出
y
=
f
(
x
)
y=f(x)
y=f(x)的方程,画出它的曲线
解决问题
思路:模仿插值,找出n个样本点,通过样本点来刻画方程,画出曲线
过程:
- 有什么:初值 y 0 y_{0} y0,一阶导公式 y ′ ( x ) = f ( x , y ( x ) ) y'(x)=f(x,y(x)) y′(x)=f(x,y(x))
- 怎么干:求出第二个点
y
1
y_{1}
y1,我们在
x
0
x_{0}
x0点处运用Taylor展开,得到
y
(
x
n
+
1
)
=
y
(
x
n
)
+
h
f
(
x
n
,
y
(
x
n
)
)
+
h
2
2
y
′
′
(
ξ
)
,
x
n
<
ξ
<
x
n
+
1
y(x_{n+1})=y(x_{n})+hf(x_{n},y(x_{n}))+\frac{h^2}{2}y''(\xi),\\x_{n}<\xi<x_{n+1}
y(xn+1)=y(xn)+hf(xn,y(xn))+2h2y′′(ξ),xn<ξ<xn+1
所以 y 1 = y 0 + h f ( x 0 , y 0 ) y_{1}=y_{0}+hf(x_{0},y_{0}) y1=y0+hf(x0,y0),误差就是 h 2 2 y ′ ′ ( ξ ) \frac{h^2}{2}y''(\xi) 2h2y′′(ξ),将此误差称为截断误差。以此类推就可以求出所有 y i y_{i} yi
总结问题
- 上 面 的 方 法 就 是 向 前 E u l e r 方 法 , 将 h f ( x n , y ( x n ) ) 上面的方法就是向前Euler方法,将hf(x_{n},y(x_{n})) 上面的方法就是向前Euler方法,将hf(xn,y(xn))改为 h f ( x n + 1 , y ( x n + 1 ) ) 就 是 向 后 E u l e r 方 法 hf(x_{n+1},y(x_{n+1}))就是向后Euler方法 hf(xn+1,y(xn+1))就是向后Euler方法
- 梯形方法
- 改进Euler方法
老师课堂作业
求出向后Euler方法余项