文章目录
原理
此方法主要用来求取微分方程或者微分方程组的数值解,主要思想是将微分方程化为差分方程,然后迭代解出差分方程在一系列点上的值。
因此求解步骤主要分为两步:
- 离散:将微分方程离散化,建立差分方程。而离散化的方法主要有差商法、泰勒级数法与数值积分法(利用矩形或者梯形的面积来计算积分)。
- 递推:由已知的y(0)逐步计算出解在一系列点上的值。
欧拉方法
其中差商法的基本公式为:
d y d x = f ( x , y ) \frac{dy}{dx}=f(x,y) dxdy=f(x,y)
也就是说
y i + 1 − y i h ≈ f ( x i , y i ) \frac{y_{i+1}-y_i}{h}\approx f(x_i,y_i) hyi+1−yi≈f(xi,yi)
所以,欧拉公式可以表示为:
y i + 1 = y i + h f ( x i , y i ) y_{i+1}=y_i+hf(x_i,y_i) yi+1=yi+hf(xi,yi)
这样利用简单的差商法可以得到一般的欧拉方法。但是欧拉方法的局部截断误差会在后面的迭代计算中逐步累积,计算结果和实际数值相差较大。属于一阶精度的计算方法。
对于欧拉方法,减小步长h可以提高计算精度,但是同时也会增大计算负担。该方法尽管效率不高,但是简单易用是他的优势。
为了进一步提高欧拉方法的计算精度,可以改变做差的方式。使用向后差商公式或者中心差商公式。这两种做差方法可以多利用迭代中前一次或者前前一次的数值信息,参与本次数值的计算,从而提高计算精度。因此这种方法也称为两步法,这是一种二阶方法。
其中采用了中心差商的欧拉方法公式如下:
y ′ ( x i ) = y ( x i + 1 ) − y ( x i − 1 ) 2 h − h 2 6 y ( 3 ) ( ξ i ) y'(x_{i})= \frac{y(x_{i+1})-y(x_{i-1})}{2h}-\frac{h^{2}}{6}{y^{(3)}}(\xi_i) y′(xi)=2hy(xi+1)−y(xi−1)−6h2y