Local truncation error from Taylor/Variable timestep

  • A
  • Thread starter maistral
  • Start date
  • #1
maistral
237
16
I am not sure where I should be posting this; I am perfectly aware this is Taylor expansion calculus, but considering the fact that I am working with numerical ODE solutions, I posted this here.

In the paper: Implementation of an Adaptive BDF2 Formula and Comparison with the MATLAB Ode15s (Celaya, et al); I have found this formula:
1625077293288.png


It's supposed to be a local truncation error formula which compares the numerical solution yn+2 to that of a Taylor expansion y(tn+2). While I can set the values of h to be equal with each other (thus retrieving the constant step version), I have no idea how to derive this term if I want to bring it to higher orders (say, I want a fourth-order solution which would den require the calculation of a fifth derivative term with variable stepsize).

TLDR: Does anyone know how this thing has been made? I have been scouring the internet for a while about this and I seem to have no information as to how this thing appeared (I mean, looking at the four papers I have now, this just magically appeared).

Thanks!
 

Answers and Replies

  • #2
pasmith
Homework Helper
2022 Award
2,587
1,185
Link to the full paper: https://www.researchgate.net/publication/275067432_Implementation_of_an_adaptive_BDF2_formula_and_comparison_with_the_MATLAB_Ode15s

I found https://student.cs.uwaterloo.ca/~cs370/notes/LTE.pdf which explain how to calculate LTEs and give the forwards Euler and Crank-Nicholson as examples.

Thus your starting point is the advancing formula (27) in which you set [itex]y_{n+1} = y(t_{n+1})[/itex], [itex]y_n = y(t_n)[/itex] and [itex]f_{n+2} = y'(t_{n+2})[/itex]. The result you are looking for gives the error in terms of [itex]y^{(3)}(t_{n+2})[/itex], so you will then need to use these Taylor expansions: [tex]
\begin{align*}
y(t_{n+1}) &= \sum_{k=0}^\infty \frac{(t_{n+1} - t_{n+2})^k}{k!} y^{(k)}(t_{n+2}) \\
y(t_n) &= \sum_{k=0}^\infty \frac{(t_{n} - t_{n+2})^k}{k!} y^{(k)}(t_{n+2})
\end{align*}[/tex] I will say that starting from the constant-step version (26) I obtained [tex]
y_{n+2} - y(t_{n+2}) = \frac 29 h^3y^{(3)}(t_{n+2}) + O(h^4)[/tex] so either I have gone astray or the paper contains an error.
 
  • #3
maistral
237
16
Link to the full paper: https://www.researchgate.net/publication/275067432_Implementation_of_an_adaptive_BDF2_formula_and_comparison_with_the_MATLAB_Ode15s

I found https://student.cs.uwaterloo.ca/~cs370/notes/LTE.pdf which explain how to calculate LTEs and give the forwards Euler and Crank-Nicholson as examples.

Thus your starting point is the advancing formula (27) in which you set [itex]y_{n+1} = y(t_{n+1})[/itex], [itex]y_n = y(t_n)[/itex] and [itex]f_{n+2} = y'(t_{n+2})[/itex]. The result you are looking for gives the error in terms of [itex]y^{(3)}(t_{n+2})[/itex], so you will then need to use these Taylor expansions: [tex]
\begin{align*}
y(t_{n+1}) &= \sum_{k=0}^\infty \frac{(t_{n+1} - t_{n+2})^k}{k!} y^{(k)}(t_{n+2}) \\
y(t_n) &= \sum_{k=0}^\infty \frac{(t_{n} - t_{n+2})^k}{k!} y^{(k)}(t_{n+2})
\end{align*}[/tex] I will say that starting from the constant-step version (26) I obtained [tex]
y_{n+2} - y(t_{n+2}) = \frac 29 h^3y^{(3)}(t_{n+2}) + O(h^4)[/tex] so either I have gone astray or the paper contains an error.

Thanks for replying.

Actually I also have the same result as yours. I seem to be unable to replicate the constant step case. I, however, found this paper: Automatic selection of the initial step size for an ODE solver and taking a glance at Equation (3.3);

1625144115660.png


It's weird since it actually replicates the order of the formula of the first paper if I assign the constant step case! The coefficient is not the same however, the original one would result to something like 1/3 and this one would result to 1/6. Strange. At least your attempt also ends up with the same order of h, but all these varying constants confuse me even more o:)

Anyway, I understand that the Taylor approach is quite straightforward. I am more curious however how the varying stepsize formulation is obtained. Could this be actually related to Lagrange polynomials? As far as I understand the only means for one to extract variable-step BDF formulations is via a polynomial interpolation approach.
 

Suggested for: Local truncation error from Taylor/Variable timestep

Replies
2
Views
1K
Replies
5
Views
520
  • Last Post
Replies
4
Views
1K
  • Last Post
Replies
4
Views
1K
Replies
1
Views
756
Replies
21
Views
867
  • Last Post
Replies
7
Views
187
  • Last Post
Replies
15
Views
634
Replies
10
Views
1K
Replies
6
Views
887
Top