A numerical solution is stable if the "energy content" remain below some limiting value no matter how long the solution is integrated. In essence, this means that the solution does not ’blow up’ after some time. This can be called BIBO stability (Bounded In Bounded Out).
Hence one way to analyze the stability of the numerical solution is to determine an expression that relates the amplitude of the solution between 2 time steps, and to determine if this ratio remain less than or equal to a unity as more and more time steps are taken.
This type of analysis is called Von Neumann stability analysis for numerical methods.
The analysis is based of finding an expression for the magnification factor of the wave amplitude at each step. The solution will be stable if this magnification factor is less than one.
Let the magnification factor be \(\xi \). The numerical scheme is stable iff
The Courant–Friedrichs–Lewy (CFL) criteria for stability says that
Where \(u,h,\) and \(\tau \) are as defined above: \(u\) is the wave speed, \(h=\Delta x\) and \(\tau =\Delta t.\)
The number \(\frac {u\tau }{h}\) is also called the courant number.
Some numerical methods will be shown to be unconditionally unstable (such as explicit FTCS and the explicit upwind). This means that even if courant number was \(\leq 1\), the numerical solutions will eventually become unstable.
Some explicit methods such as LAX, are conditionally stable if the courant number was \(\leq 1.\)
Implicit methods are unconditionally stable, hence courant number is not used for these methods. However, this does not mean one can take as large step as one wants with the implicit methods, since accuracy will be affected even if the solution remain stable.
Hence, the best numerical scheme is one in which the largest step size can be taken, with the least amount of inaccuracy in the numerical solution while remaining stable.
For numerical scheme that are conditionally stable, it can be seen from the CFL condition that for a fixed speed \(u\) and fixed \(h\), the maximum time step that can be taken is given by
It can be immediately seen from above, that for the case when the advection speed is varying and is a function of time such as the case when \(u\left ( t\right ) =\frac {t}{20}\) implying that the speed is increasing with time, then when using a fixed time step \(\tau \) it will eventually become larger than \(\frac {h}{u}\) and the numerical scheme will be unstable. This is because as \(u\left ( t\right ) \) is becoming larger and larger, while \(h\) is fixed, the term \(\frac {h}{u}\) will become smaller and smaller.
Hence to keep the courant number \(\frac {u\tau }{h}\leq 1\) , the time step taken must remain less than \(\frac {h}{u}\), hence using a fixed time step with increasing \(u\) will eventually lead to instability.
This will affect the explicit methods that are conditionally stable such as the LAX method, since the Lax method is explicit and depends on satisfying the CFL all the time for its stability. Implicit methods are stable for any time step.
In the following we derive the details of the stability analysis and use Von Neumann analysis to derive an expression for the amplification factor \(\zeta \) for different numerical schemes.
So to summarize: