11 ms·
> To some extent, yes, but consider that we're speaking of a numerical differential equation solver. If we make the time steps too large, the program runs fast
by conistonwater 12y ago
> To some extent, yes, but consider that we're speaking of a numerical differential equation solver. If we make the time steps too large, the program runs fast but the simulation is less realistic. If we go too far and make the time steps very small, we'll start seeing rounding errors in the floating-point processing.
But this just means that the problem needs to be solved carefully; what you've done is state the problem. Look at any textbook on numerical analysis, such as Numerical Recipes, or even something more basic. It will explain how to implement adaptive time-stepping for numerical solution of ODEs.
Here the parameter is not for time-stepping, it's for ignoring nodes in an octree, but you can still mathematically pick a parameter that generates something like a desired level of accuracy, instead of having to specify the parameter itself.
> The reason this class of simulation is numeric is because all but the the most trivial orbital simulations must be performed numerically. The reason for that, in turn, is because of the Three-Body Problem:
You make all of this sound like it's a difficult problem. For a basic ODE solver, adaptive time-stepping is one of the most standard techniques. Most introductory numerical analysis courses in universities cover this, so usually the reason people implement it this way is that they simply haven't heard about it, and don't know that they can look it up in a textbook.
- lutusp 12y ago> You make all of this sound like it's a difficult problem. It is a difficult problem. Consider all the elements of a solution on which space missions depend. All of them must be generated using numerical modeling methods, and for a solar system simulation in which most or all the candidate bodies are modeled, the computation load is quite high. > but you can still mathematically pick a parameter that generates something like a desired level of accuracy, instead of having to specify the parameter itself. This isn't true, or it's not assured to be true. The reason is that orbital systems with > 2 bodies meet the definition of a chaotic system, a system acutely sensitive to initial conditions. Everyone who works in this field understands that there's a time horizon past which we really cannot say what the solar system's configuration will be.
- conistonwater 12y ago> It is a difficult problem. Implementing an ODE solver good enough to use for designing spacecraft trajectories is a difficult problem. Implementing an ODE solver that can handle an n-body problem (with a fairly small n) without leaving user-visible magical parameters is not difficult. Introductory textbooks can explain how to do this. > The reason is that orbital systems with > 2 bodies meet the definition of a chaotic system, a system acutely sensitive to initial conditions. Even if you have a chaotic dynamical system, you can still solve it. You don't solve it in the sense that the trajectory you get is the correct one, because, as you rightly say, that is mathematically impossible for long time periods. But you can solve it in the sense that the solution you get "could" have originated from an initial condition close to the given initial condition. There are many interesting things you can do for complicated ODE problems. But writing ODE solvers of the level of complexity and accuracy we are talking about here is a solved problem.