I have solved a PDE with an analytical equation. Through operator splitting I divided the PDE into one PDE and one ODE, using a sequential approach.

Finally for different $dt$, I got euclidian norm of the difference:

Euclidian norm
$dt_1$ $error_1$
$dt_2$ $error_2$
$dt_3$ $error_3$

I would like to know the order of my numerical scheme, is this possible? I have seen the following formula:

$$ (p+1)_\text{estimated} = \frac{\log_{10}(error_1) - \log_{10}(error_2) }{ \log_{10}(dt_1) - \log_{10}(dt_2) } $$

  • 1
    $\begingroup$ Hi Daniel. Welcome to scicomp. Your question seems suitable for this site but you definitely need to get the formatting right. (And maybe make the question a bit more clear like 1. how to estimate convergence orders? 2. what about this formula?) $\endgroup$ – Jan Oct 26 '16 at 12:56

The idea of estimating the order of numerical scheme is following. If you have only one discretization parameter, say $dt$, you start with an assumption that the error have the following character $e = C (dt)^p$ where $e$ is your preferred ``global'' error when comparing numerical solution with exact solution e.g. at a fixed time $T$ (i.e. you need different number of time steps with different $dt$). If you expect such behavior of your error then $p$ expresses the order of method.

Consequently $$ e_1 = C (dt_1)^p \,, \quad e_2 = C (dt_2)^p \,. $$ Then you make a simplification (an approximation) that $C$ is identical in both cases that is not true in general, but for enough small $dt$ this approximation is reasonable. Doing simple algebraic computations you obtain $$ \frac{e_2}{e_1} = \left(\frac{dt_2}{dt_1}\right)^p $$ that you can express as you wrote. The simplest way to do this is to use $dt_2=dt_1/2$ when for small enough $dt_1$ you can estimate that $p=1$ if $e_2=e_1/2$ or $p=2$ if $e_2=e_1/4$ and so on.

First remark - you typically do not (and do not want to) estimate local truncation error that in many cases is of order $p+1$. Secondly, you mention PDEs, so you typically have also another discretization step, e.g. $dx$ (or you solve one equation in splitting method with analytical methods?). Then your error will be dominated by lower order accuracy, so with no prior knowledge of order it is not easy to estimate it.

| cite | improve this answer | |
  • $\begingroup$ Ok, thanks. I would like also to ask/answer you. 1) why not want to estimate local truncation error? 2) The formula that you have posted is for global error? 3) I use different splittings, all with two operators and solve with different methods and orders. $\endgroup$ – Daniel Oct 26 '16 at 21:14
  • $\begingroup$ Typically the local truncation error is known to you, so you need to compute it. As it is local it seems reasonable to compute only in the first time step, so it does not say too much. Yes, my formula is valid for global error. $\endgroup$ – Peter Frolkovič Oct 27 '16 at 11:48
  • $\begingroup$ Thanks again. Just one thing more, what is the typical reference for your proposed formula. Thanks $\endgroup$ – Daniel Oct 27 '16 at 16:35
  • $\begingroup$ Thanks, and why C is not always equal? Theoretically, it should be? $\endgroup$ – Daniel Oct 27 '16 at 17:23

I am not 100% sure, though I would say that the answer to the question can be founded in the following book (I have not found it), where apparently the definition of local truncation error is given by

$$ p =sup \{ q \in N : \lim_{\tau\rightarrow 0}\frac{E(\tau)}{\tau^{q+1}} = c < +inf\} $$

p is the order, E the error that depends on $$\tau$$ q a natural (I guess) and c the constant. to be consistent p>0. Then you approach tau to the machine zero, and see the limit.

What is the reference for this formula? Also, I think this approach can be use online for local truncation error, so one step. My results are at the end of the simulation. So I would like to ask, what others ways do I have to found the order from my global errors?


| cite | improve this answer | |

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.