微分方程笔记 5 欧拉方法

欧拉方法

给定一个微分方程和初值:
frac{dy}{dt}=f(t,y(t)),qquad y(t_0)=y_0

在不求解的前提下,想要获得一个近似解,最简单的方法之一是欧拉方法。
欧拉方法中,我们设定一个步长(step size)delta t,依据线性近似的公式

y(t_{i+1})=y(t_i + Delta t)=y(t_{i})+frac{dy}{dt}bigg|_{t=t_i}Delta t+O({Delta t}^2)
qquad approx y(t_i)+y'(t_i)Delta t

迭代地获得近似解。

举例:
frac{dy}{dt}=y^2-t, qquad y(0)=0,qquad Delta t = 0.5

Python中定义欧拉方法:

欧拉方法的精确地取决于:
1. 微分方程本身
2. 步长

欧拉方法是最基本的定步长(fixed-step-size)数值近似方法,Delta为常数,是一个一阶算法(first-order algorithm): text{error}leq Ccdot (Delta)^1,通常,如果步长减半,通常误差也会减半。

欧拉方法之外还有很多计算更简便却精度更好的算法,例如Runge-Kutta方法,经典的RK方法是4阶的,意思是,如果步长减半,误差通常会减小为frac{1}{2^4}

定步长方法并不总是适用于所有情况,例如:
frac{dy}{dt}=e^{t}siny,qquad y(0)=5
随着t值得增加,y(t)实际上应该是进入平衡,而非上下震动。

05-01EulerVsField

Leave a Reply

Your email address will not be published. Required fields are marked *