I was looking at this wikipedia page: http://en.wikipedia.org/wiki/Finite_difference_coefficient

It is a lists of higher order finite difference approximations, is there any negatives in using these apart from the extra calculations that they require to solve.


The most prominent drawback of high-order methods is that when the solution is not smooth, high order methods suffer from Runge's phenomenon. These oscillations are often informally referred to as "instability".

Implementation difficulties, especially with complicated boundaries, is probably the second most important detractor besides efficiency. Many ways to reach high order are computationally impractical, though some classes (e.g., spectral element) can be very efficient. Very high order FD methods are most commonly used for DNS in regular domains.

  • 1
    $\begingroup$ Finite difference assumes a polynomial approximation. So when the solution is smooth but exponential or trigonometric rather than polynomial, you still get Runge's phenomenon. $\endgroup$ – Phil H Mar 19 '13 at 8:50

As an extension of Jed's post, higher order finite difference methods often compute the value at one node based not only on the immediate neighbors but also other nodes far away. This is a problem if the current node is close to the boundary (whether the boundary is regular or not): In that case, the nearest neighbor of the current node may be a boundary node, in which case you would know its value if you have Dirichlet boundary conditions, but the farther away nodes the current node depends on may not lie inside the domain any more. What do you do when you need these nodes' values?

A separate problem is that the stencils are rather large because they couple so many nodes. This means that the matrices are less sparse than for lower order methods, with the resulting increase in computational effort in solving linear systems.

  • $\begingroup$ Regarding the boundary, I use 'ramping' to lower the order of the scheme near the boundary, such that the point adjacent to the boundary requires only the boundary (e.g. 2nd derivative 3-point scheme). The problem I solve is always smoothest near the boundary, so this works well. $\endgroup$ – Phil H Mar 19 '13 at 8:46
  • $\begingroup$ That works, but it's a hassle and I would count that as a drawback. Note that higher order finite element methods do not need such "ramping". $\endgroup$ – Wolfgang Bangerth Mar 19 '13 at 11:57
  • $\begingroup$ I think finite element itself counts as hassle :) $\endgroup$ – Phil H Mar 19 '13 at 14:52

Depending on how high order you go you run into a lot of frustrating difficulties. The derivatives of order $N$ polynomials grow as $N^2$ (see e.g. Markov's inequality to make this more precise), and these large gradients (mostly near boundaries of your elements) often lead to spuriously large eigenvalues in discretizations, making you have to resolve very fine scale oscillations that probably aren't physically meaningful to begin with. So efficient implementation in the high order regime isn't as straightforward, despite the higher formal order of convergence.

Also, simply calculating the discrete derivative operator is difficult. A lot of literature from the 80s and early 90s put considerable effort into stable calculations of high order differencing matrices. The operator can be highly non-normal, leading to a lot of numerical garbage that is hard to predict.

I think a lot of these issues have been well addressed by now, but that just means doing a bit more work to make high order worthwhile.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.