在数学中,有限差分法(finite-difference methods,简称FDM),是一种微分方程数值方法,是通过有限差分来近似导数,从而寻求微分方程的近似解。
采用有限差分法通常意味着:
1)生成一个网格点(tk,yi),我们想要找到soltuions
2)用有限差分格式替代ODE / PDE中的导数,将ODE / PDE转换为代数方程组。
3)求解代数方程组。
4)实现和调试计算代码。
5)通过任何可用的方法:直观地,分析地或数字地执行健康检查,错误分析,敏感性分析等。
Consistency, Stability and Convergence
对于实际问题的任何FDM,我们都应该问
1)这种方法有多敏感?
2)它是否收敛?
3)步长的最佳选择是什么?
Local Truncation Error 本地截断错误
Defined as the amount by which the exact solution does not satisfy the numerical scheme.
Just plug the exact values of the functions/variable into the FDM scheme and calculate the error, for Euler scheme, this is,
定义为精确解并不满足数值方案,只需将函数/变量的确切值再插入FDM,并计算错误即可,对于欧拉方案:
一般会关注近似解的局部截尾误差,会用大O符号表示,局部截尾误差是指应用有限差分法一次后产生的误差,
前向差分与后向差分
The backward Euler's Method
- 我们说这个方法是implicit的,如果f(t,y) 是非线性的,我们需要求解非线性方程以得到y n + 1
-
局部截尾误差local truncation error
-
我们设 f(t,y)=λy
显式欧拉
之所以称之为显式,是因为下一时刻的值yn+1,可根据当前时刻的值yn及其导数y′n 显式地给出。
从当前时刻出发,根据当前时刻的函数值及其导数,可得到下一时刻的值。因此显式欧拉法又称为前向欧拉(Forward Euler)。
-
我们把上面的公式做一下变形可得
即,显示欧拉就是用前向差商代替导数
隐式欧拉(Implicit Euler)
之所以称之为隐式,是因为上式是一个隐式方程
-
另一种角度看上面的公式:将上式做一下变形可得:
从当前时刻出发,根据当前时刻的函数值及其导数,可得到前一时刻函数的值。因此隐式欧拉法又称为后向欧拉(Backward Euler)
-
再从另一个角度看,我们把上面的公式做一下变形可得
即,显示欧拉就是用后向差商代替导数。