0

I'm coding a few programs to study structural dynamics problems, and I'm trying to understand how to estimate and minimize accumulated error over time for large-time scale calculations.

An explicit time integrator uses the knowledge of the current state to compute the next state. But it's an approximation so each calculation of the next state causes some error that is propagated to following states, which compounds over future calculations. Implicit time integrators improve accuracy with fewer time steps needed, but at the cost of increased calculation requirements per time step.

I've used software like AGI's STK which can calculate very accurate, complicated orbits over many years. I wasn't able to find specific theory information by searching their online documentation, but I'm very much curious as to how this type of thing is done in practice. Regardless if the time step chosen for this analysis is on the order of seconds or minutes, the overall calculation ends up requiring many, many time steps, which I assume involves a lot of accumulated error.

There are higher-order methods (i.e. RK, leapfrog, etc.), which minimize error at each time step, but for truly long-scale calculations, how is this done at scale?

  • 1
    Generally: Careful numerical design (guarding against subtractive cancellation, error magnification; use fused multiply-add), compensated computations (dot products, polynomial evaluation), quadruple-/arbritrary-precision computation. Intro: D. H. Bailey and J. M. Borwein, "High-Precision Arithmetic in Mathematical Physics," *Mathematics*, **2015**, 3, 337-367 ([online](https://www.mdpi.com/2227-7390/3/2/337/pdf)). Case study: Takashi Ito and Sadamu Kojima, "Inaccuracies of Trigonometric Functions in Computer Mathematical Libraries," *Publ. Natl. Astron. Obs. Japan*, Vol. 8. 17-31 (2005) – njuffa May 11 '22 at 03:26
  • 3
    In my thinking this question is too broad for this site, and it is not clear what exactly the single, factually answerable, programming question is here. It might be a better fit for our [Computation Science](https://scicomp.stackexchange.com/) companion site, which seems to accept conceptual questions of this kind more readily (but do study the site description to see what is considered on-topic there; don't take my word for it). – njuffa May 11 '22 at 04:05
  • 1
    IMO, if you use a sufficiently high order method, the effect of drift is completely absorbed by the error resulting from the inaccuracy of the initial conditions, and you should not worry. –  May 11 '22 at 08:50
  • I've seen approaches that use conservation of energy and momentum checks and corrections at each time step. Maybe that would help you. – duffymo May 11 '22 at 13:54

0 Answers0