Starting BDF iterations - suggestions?

  • A
  • Thread starter maistral
  • Start date
  • Tags
    Suggestions
  • #1
maistral
240
17
TL;DR Summary
How do I start BDF iterations? Any suggestions?
As we know, backward differentiation formulas for ODE start off with the backward Euler; which proceeds as:
 y_{n+1} - y_n = h f(t_{n+1}, y_{n+1})


If I wanted to switch to the second order method;
{\displaystyle y_{n+2}-{\tfrac {4}{3}}y_{n+1}+{\tfrac {1}{3}}y_{n}={\tfrac {2}{3}}hf(t_{n+2},y_{n+2})}


Can anyone recommend me ideas as to how to generate the initially required yn+1? The only thing I can think of are as follows:
  • Use a standard Runge-Kutta to generate the second point, but in my opinion this is somehow futile as the reason why we use implicit methods is to avoid the instabilities which will generated via a standard explicit approach (like Runge-Kutta).
  • Use the backward Euler technique with some microscopic (lol) stepsizes to assure that I am accurate, then I switch to a higher BDF method? Say, I want to propagate a second-order solution with a stepsize of 0.1. Maybe I should generate a backward Euler solution of step 0.001? Or something?
I'm very open to suggestions as I have no idea how to proceed. Any suggestions?
 
  • Like
Likes Delta2
Physics news on Phys.org
  • #2
maistral said:
Use a standard Runge-Kutta to generate the second point
This is the usual approach.

maistral said:
, but in my opinion this is somehow futile as the reason why we use implicit methods is to avoid the instabilities which will generated via a standard explicit approach (like Runge-Kutta).
Indeed.

maistral said:
I'm very open to suggestions as I have no idea how to proceed. Any suggestions?
These issues are considered in any good textbook on ODE methods, the 'gold standard' being Lambert Computational Methods in Ordinary Differential Equations or alternatively these excellent lecture notes available online: https://people.maths.ox.ac.uk/suli/nsodes.pdf (see s3.2 et seq).
 
Last edited:
  • Like
Likes Delta2, jim mcnamara, maistral and 1 other person
  • #3
Oh! Thank you very much.
 
  • Like
Likes Delta2
  • #4
If you are calculating ##y_{n+2}##, you already know ##y_{n+1}##.
 
  • #5
Chestermiller said:
If you are calculating ##y_{n+2}##, you already know ##y_{n+1}##.
How?
 
  • #6
pbuk said:
How?
Automatic implicit integration packages like the Gear package (available from IMSL)and Dassl (available for free online) feature automatic control over step size, order, and accuracy. These all start out at first order, and switch to higher order according to their accuracy criteria. So, once you get to 2nd order, you already know the solution values from the two previously executed integration steps.

https://www.osti.gov/servlets/purl/5882821/
 
Back
Top