分享

前向后项差分和显式隐式欧拉法

 勤奋不止 2019-07-27

摘要:
本文主要介绍前向后向差分,显式隐式欧拉法及其稳定性分析。
前向差分对应显式方法,后向差分对应隐式方法。显式欧拉法是比较流行的显式方法,隐式欧拉法是比较流行的隐式方法。
显式欧拉法条件稳定,对积分步长有要求,隐式欧拉法无条件稳定,对积分步长无要求(理论上如此,但实际使用中对积分步长仍然有要求,只是比显式欧拉宽松)。

1. 前向差分与后向差分

设一元函数函数离散化为一系列的点,,其中,, , 称为步长。

1.1 前向差分(Forward Difference)

  1. 前向差分的定义:
    之所以称之为前向差分,是因为当前时刻的差分,是下一时刻位置(时间向前前进一步)与当前时刻位置之差。

  2. 高阶前向差分
    根据上式递归可得k阶前向差分公式为:
    例如,二阶前向差分公式为:

       
       
       
       

1.2 后向差分(Backward Difference)

  1. 后向差分定义:
    由定义可以看出,当前时刻的差分,是当前时刻的位置与前一时刻的位置之差。

  2. 高阶后向差分
    同上,k阶后向差分公式为:
    因此,二阶后向差分公式为:

1.3 差商和导数

  1. 差商就是差分除以步长,即,

  2. 在数值计算中,需要以差商代替导数,即,

    • 如果使用前向差分,则为显式方法,例如,

    • 如果使用后向差分,则为隐式方法,例如,

2. 显式欧拉和隐式欧拉

设有一阶常微分方程很多时候我们无法求出函数的解析解,只能通过数值方法逼近,即,将时间离散为一系列的点其中, 我们要做的就是求函数在这些离散的时间点上的值

2.1 显式欧拉(Explicit Euler)

  • 显式欧拉公式:
    之所以称之为显式,是因为下一时刻的值,可根据当前时刻的值及其导数 显式地给出。

  • 另一种角度看上面的公式:从当前时刻出发,根据当前时刻的函数值及其导数,可得到下一时刻的值。因此显式欧拉法又称为前向欧拉(Forward Euler)

  • 再从另一个角度看,我们把上面的公式做一下变形可得 即,显示欧拉就是用前向差商代替导数。

2.2 隐式欧拉(Implicit Euler)

  • 隐式欧拉公式:
    之所以称之为隐式,是因为上式是一个隐式方程。

  • 另一种角度看上面的公式:将上式做一下变形可得:从当前时刻出发,根据当前时刻的函数值及其导数,可得到前一时刻函数的值。因此隐式欧拉法又称为后向欧拉(Backward Euler)

  • 再从另一个角度看,我们把上面的公式做一下变形可得 即,显示欧拉就是用后向差商代替导数。

2.3 例证欧拉法的稳定性

设有一阶常微分方程 我们知道,这个常微分方程的解析解为 时, 那么分别用显式、隐式欧拉法会得到什么呢?
1. 显式欧拉法条件稳定(Conditionally Stable)
根据显式欧拉法公式,

为了保证上式收敛,需要保证, 得,
即,为了保证显式欧拉的稳定性,需要保证时间步长,即,条件稳定.

2.隐式欧拉法无条件稳定(Unconditionally Stable)
根据隐式欧拉公式,
则,
又,恒大于1。即不管时间步长为多大,隐式欧拉始终稳定,即无条件稳定.

注意:实际应用中,隐式欧拉需要求解隐式方程,通常也是使用逼近的方法(例如,Newton-Raphson)求解,因此实际的隐式欧拉方法并不是无条件稳定的。

3.一般形式的稳定性分析,我目前还没有掌握。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多