Explict vs Implict FInite Difference Scheme


Explicit methods calculate the state of a system at a later time from the state of the system at the current time, whileimplicit methods find a solution by solving an equation involving both the current state of the system and the later one. Mathematically, if Y(t) is the current system state and Y(t+.Delta t) is the state at the later time (.Delta t is a small time step), then, for an explicit method

Y(t+.Delta t)=F(Y(t)).,

while for an implicit method one solves an equation

{.displaystyle G{.Big (}Y(t),Y(t+.Delta t){.Big )}=0.qquad (1).,}

to find Y(t+.Delta t).






du/dt = f(u)
where u is a vector and f is a known function. Then we may approximate the time derivative over a time step h as
(implicit) u(n+1) = u(n) + h.f(u(n+1))

if f(u) = Au where A is a constant, then u(n+1)=u(n)+Ahu(n+1),then, u(n+1)=u(n)/(1-Ah)

这种情况下,差分方法是显式还是隐式呢? 本质上我们也求解方程(1), 但是我们得到了显示格式。



这里认为:When a direct computation of the dependent variables can be made in terms of known quantities, the computation is said to be explicit. When the dependent variables are defined by coupled sets of equations, and either a matrix or iterative technique is needed to obtain the solution, the numerical method is said to be implicit.



另外一个定义:The idea behind the explicit method is to be able to obtain values such as
y i+1 = f(xi, yi), yi+2 = f(xi,xi+1,y i,yi+1), etc.In other words, your solution proceeds by solving explicitly for a new unknown value inthe solution array, given all previous values in the array. On the other hand, implicit
methods imply the simultaneous solution of n linear algebraic equations that provide, atonce, the elements of the solution array.



关于两者的Advantage与Disadvantage,应该比较清楚,前者速率快,但是本质上是conditionally stable,当dt较大,精度就会受到限制;而后者是unconditionally stable,但是计算效率低。





In finite-difference methods, calculations are performed on a grid placed over the interesting flow domain into the x-tplane. This computational grid is defined by some equal or variable space and time steps, Δx and Δt, respectively. A network of discrete points is thus obtained and the flow variables Q, z (or Q, h; V, z; V, h) are derived only for this finite number of grid points. Figure 6.2 shows a typical computational grid. The spatial positions of the grid points are denoted by index jand the time moments by index i.

Figure 6.2. Finite-difference computational grid.

As principle, finite-difference methods transform governing partial differential equations into a set of algebraic (linear or nonlinear) finite-difference equations, which are solved to allow the values of flow variables in a grid point or in all grid points on a time line. These finite-difference equations are derived by approximating the time and space derivatives with some finite-difference expressions. Not only the derivatives, but also the other terms into the Saint-Vénant equations must be defined in a certain manner.

Concerning the space derivative of a continuous function f(x,t) at time moment ti and space position xj on the grid in Figure 6.2, this can be approximated as:

a forward difference approximation;

a backward difference relationship;

a central difference expression,


in which fji represents the value of f at grid point (xj ,ti).

In an analogous manner, the time derivative may be defined in several different ways as, for example:



Usually, the value of the function f(x,t) is accepted at grid point (xj,ti) as fji , but some different approximations can also be decided.

A finite difference method must employ a certain type of finite-difference scheme. These schemes are grouped in two major classes: explicit and implicit finite-difference schemes.

Explicit schemes are those in which the flow variables at any point j and time level i+1 may be computed using only known data at a few adjacent points on the time line i. These schemes do not lead to a system of algebraic equations, but rather to only two finite difference equations for each grid point (xj,ti+1). By solving the two equations the unknown values of flow variables are obtained and then, the computation proceeds to the next grid point along the time line i+1.

In implicit schemes, finite-difference expressions used to approximate the space and/or time derivatives at grid point (xj, ti+1) include the unknown values of flow variables at a few adjacent points on the time line i+1. Consequently, a system of algebraic equations is produced for a given time line i+1 and by solving this system, all unknown values are simultaneously determined at time level i+1.

Replacing the continuous original problem with an integration over a discrete computational grid introduces numerical errors into the results. A finite-difference scheme is stable if such errors are not amplified during computation from one time level to the next. The numerical stability depends on the size of the time and space steps and on some flow characteristics. The Courant condition:


is a necessary but insufficient condition for stability of an explicit scheme.

Therefore, any explicit scheme is conditionally stable, the Courant condition requiring to work with small time steps as compared with the physical phenomena evolution. Despite their computational simplicity, the explicit methods are seldom used in river modelling for reasons of this stability restriction.

On the other hand, the implicit schemes may appear more complicated, but can generally be made unconditionally stable for large computation steps and with little loss of accuracy.

Another distinction among schemes belonging to the same class is related to the way in which the non derivative terms (such as Sf(Q,h), B(h), A(h) etc.) are discretized. Because these terms are functions of dependent variables, their treatment induces a linear or nonlinear feature of the finite-difference equations.

A lot of finite-difference schemes will be presented in more details within the next sections.

Numerical solution of kinematic wave model

First form (6.21) of the kinematic wave model is used to illustrate an explicit linear scheme on a finite-difference cell as show in Figure 6.4.

A backward finite-difference is used to approximate the space derivative, while the time derivative is usually expressed at the same xj+1 spatial position. In order to obtain a linear scheme, the nonderivative term αβQβ-1 must be evaluated for a known Q value, which here is accepted as mean between the two diagonal valuesQji+1 and Qij+1.

Figure 6.4. Finite-difference cell for linear kinematic wave solution.

Consequently, the finite-difference form of equation 6.21 is:


and the unknown Qj+1i+1 results as:


Starting with the inflow hydrograph value Q at the time level ti+1, the computation sequentially proceeds from upstream towards downstream grid points, along the current time line i+1.

However, this scheme supposes that within the coefficient α, the wetted perimeter P remains constant. On the other hand, by using Q instead of A into the time derivative ∂A/t, relative computational errors are decreased. Indeed, taking the logarithm of equation 6.20, i.e.


and differentiating, one obtains:


where β is 0.6 for the Manning’s equation. It follows that the estimation error in Q would be magnified by 1/0.6 ≈ 1.67 if the cross-sectional area A is used as dependent variable.

来自另外一本书:Chow, E.A., Applied hydrology. 1988.

A finite-difference method may employ either an explicit scheme or an implicit scheme for solution. The main difference between the two is that in the explicit method, the unknown values are solved sequentially along a time line from one distance point to the next, while in the implicit method the unknown valueson a given time line are all determined simultaneously. The explicit method is simpler but can be unstable, which means that small values of Ax and A^are required for convergence of the numerical procedure.

综合上面的分析,对于PDE,如果在某个待求得时间点上,各位置(from upper to down)的值能够被依次直接求解的情况,认为是显示差分;而如果某个待求得时间点上,各位置的值必须同时联立起来求解,应该是隐式差分。

Leave a Reply

Notify of