首页 理论教育 Matlab二步欧拉法解微分方程:原理与实现

Matlab二步欧拉法解微分方程:原理与实现

时间:2023-10-31 理论教育 版权反馈
【摘要】:它与欧拉法截然不同,式(1-4)可直接用xn和un计算得到un+1,而式(1-6)等号两边同时包含un+1,无法直接计算un+1具体数值,所以也称为隐式欧拉法。如果将导数近似为中心差商:代入式(1-1)中的第1个式子,并用un-1和un+1近似代替u和u,得:un+1=un-1+2hf (1-8)用上式计算un+1的时候需要un-1和un的值,所以称其为二步欧拉法。实际使用二步欧拉法的时候,起初就要用到u0和u1的取值,若u1未知,一般就先用欧拉法求出u1的值,再使用二步欧拉法。

Matlab二步欧拉法解微分方程:原理与实现

欧拉法(Eulermethod)的核心就是将导数(微商)近似为差商。将导数近似为向前差商,则有:

978-7-111-51623-1-Part01-2.jpg

代入式(1-1)中的第1个式子,得:

u(xn+1)=u(xn)+hf(xn,u(xn)) (1-3)

unun+1近似代替u(xn)和u(xn+1),得:

un+1=un+hf(xn,un) (1-4)

上式称为欧拉法,其中n=0,1,…。若已知u0的取值,就可以用递推公式(1-4)步进式地计算出x1,x2,…处的u1,u2,…。欧拉法的几何意义如图1-1所示,从点(x0,u0)出发,以f(x0,u0)为斜率做一直线段,与直线x=x1交于点(x1,u1),该交点的纵坐标u1就是u(x)在该处的取值u(x1)的近似。再从点(x1,u1)出发,以f(x1,u1)为斜率做一直线段,与直线x=x2交于(x2,u2),其纵坐标u2就是u(x2)的近似。继续重复这一过程,最终获得一条折线作为曲线u(x)的近似,因此欧拉法也叫折线法。

978-7-111-51623-1-Part01-3.jpg

图1-1 欧拉法的几何意义

如果将导数近似为向后差商,有:(www.xing528.com)

978-7-111-51623-1-Part01-4.jpg

同样代入式(1-1)中的第1个式子,并用unun+1近似代替u(xn)和u(xn+1),得:

978-7-111-51623-1-Part01-5.jpg

上式称为后退的欧拉法(backward Euler method),其中n=0,1,…。它与欧拉法截然不同,式(1-4)可直接用xnun计算得到un+1,而式(1-6)等号两边同时包含un+1,无法直接计算un+1具体数值,所以也称为隐式欧拉法(implicit Euler method)。

如果将导数近似为中心差商:

978-7-111-51623-1-Part01-6.jpg

代入式(1-1)中的第1个式子,并用un-1un+1近似代替u(xn-1)和u(xn+1),得:

un+1=un-1+2hf(xn,un) (1-8)

用上式计算un+1的时候需要un-1和un的值,所以称其为二步欧拉法。实际使用二步欧拉法的时候,起初就要用到u0u1的取值,若u1未知,一般就先用欧拉法求出u1的值,再使用二步欧拉法。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈