Nonstandard finite difference scheme

Nonstandard finite difference schemes is a general set of methods in numerical analysis that gives numerical solutions to differential equations by constructing a discrete model. The general rules for such schemes are not precisely known.

Overview
A finite difference (FD) model of a differential equation (DE) can be formed by simply replacing the derivatives with FD approximations. But this is a naive "translation." If we literally translate from English to Japanese by making a one-to-one correspondence between words, the original meaning is often lost. Similarly the naive FD model of a DE can be very different from the original DE, because the FD model is a difference equation with solutions that may be quite different from solutions of the DE. For a more technical definition see Mickens 2000.

A nonstandard (NS) finite difference model, is a free and more accurate "translation" of a differential equation. For example, a parameter (call it v) in the DE may take another value u in the NS-FD model.

Example
As an example let us model the wave equation,
 * $$ (\partial_t^2-v^2 \partial_x^2 ) \Psi(x,t) = 0 .$$

The naive finite difference model, which we now call the standard (S) FD model is found by approximating the derivatives with FD approximations. The central second order FD approximation of the first derivative is
 * $$f'(x) \approx \frac{f(x+ \Delta x/2)-f(x- \Delta x/2)}{\Delta x}. $$

Applying the above FD approximation to $$ f '(x)$$, we can derive the FD approximation for $$f '' (x)$$,
 * $$ f''(x) \approx \frac{\text{d}_x^2 f(x)}{\Delta x^2}, $$

where we have introduced the shortcut $$ \text{d}_x f(x) = f(x+\Delta x/2) - f(x-\Delta x/2)$$ for simplicity such that $$ \text{d}_x{}^2 f(x) = f(x+\Delta x) + f(x-\Delta x) -2 f(x)$$ which can be check by applying $$ \text{d}_x $$ on $$f(x)$$ twice. Approximating both derivatives in the wave equation, leads to the S-FD model,
 * $$ \left[\text{d}_t^2 - (v \Delta t/\Delta x)^2 \text{d}_x^2 \right] \Psi(x,t) = 0. $$

If you insert the solution $$ \phi(x,t) = e^{i (kx -\omega t)} $$ of the wave equation (with $$ \omega/k = v $$)into the S-FD model you find that
 * $$ \left[\text{d}_t^2 - (v \Delta t/\Delta x)^2\text{d}_x^2 \right] \phi(x,t) = \epsilon.

$$ In general $$\epsilon \neq 0$$ because the solution of the FD approximation to the wave equation is not the same as the wave equation itself.

To construct a NS-FD model which has the same solution as the wave equation, put a free parameter, call it u, in place of $$v \Delta t/ \Delta x$$ and try to find a value of u which makes $$\epsilon = 0 $$. It turns out that this value of u is
 * $$u = \frac{\sin(\omega \Delta t/2)}{\sin(k \Delta x/2) }. $$

Thus an exact nonstandard finite difference model of the wave equation is
 * $$ \left[ \text{d}_t^2 - (u\Delta t/\Delta x)^2 \text{d}_x^2 \right] \Psi(x,t) =0. $$

Further details and extensions of to two and three dimensions as well as to Maxwell's equations can be found in Cole 2002.