Next: 5.7 The End of Up: 5. Exploring with a Previous: 5.5 Priming the Pump

# 5.6 Reaching Convergence

|gravity> leapfrog2a > leapfrog2a_0.0001_100.out
Please provide a value for the time step
0.0001
and for the duration of the run
100
Initial total energy E_in = -0.866025
Final total energy E_out = -0.866025
absolute energy error: E_out - E_in = 2.55083e-08
relative energy error: (E_out - E_in) / E_in = -4.10015e-08
|gravity>


Bob:
Still quite different pictures. And notice that the energy errors don't yet scale with a factor of one hundred, as they would once we really converge to a unique set of tracks -- if there is such a thing.

Alice:
Still doubting my suggestion, aren't you? I must admit, it doesn't look very good, so far. But hope springs eternal, so let's try another order of magnitude step size refinement, down to dt = 0.000,01 which implies ten million integration steps in total for this three-body problem.

|gravity> leapfrog2a > leapfrog2a_0.00001_100.out
Please provide a value for the time step
0.00001
and for the duration of the run
100
Initial total energy E_in = -0.866025
Final total energy E_out = -0.866025
absolute energy error: E_out - E_in = -1.59043e-11
relative energy error: (E_out - E_in) / E_in = 1.83647e-11
|gravity>


Bob:
Surprise! Virtually the same picture, all of a sudden! So now I agree that Alice was really right on both counts. But I have one last worry. Why has the energy error suddenly shrunk so much, by a factor of more than a thousand, where I would have expected only a hundred?

Alice:
Hard to say. In the two-body case it was not so hard to track down all aspects of the integration errors, since the underlying orbits were so simple. But look here, what a mess! In order to answer your last worry, we need to build a lot more tools. Besides a switch to variable time steps in the integrator, which we'll get around to at some point, we need much better ways to dissect orbit segments, in order to focus on particularly interesting interactions. Ideally, we would like to build in some form of artificial intelligence, so that the particles themselves will know how to take notes while they are flying around and being flung around. When we can harvest their stories at the end of an integration, we will have a head start in answering questions of the type you asked. You'll have to be a bit patient though, since it will require quite a number of sessions to get to that point.

Carol:
Well, I'm game. It's a lot of fun already, to see how much progress we have made. The fact that we have now reached a point where we can ask questions that call for some form of artificial intelligence to answer them is impressive enough. Besides, it means that I, too, might start to write a working paper about part of what we are doing now. One footnote, though: I wouldn't call these orbits a mess; on the contrary, I find all this wheeling around quite elegant.

Bob:
Elegance is in the eye of the beholder, I guess, but I must admit that I, too, find this figure skating quite pretty. And I am desperately thinking how I could make a working paper out of all this -- perhaps for an art class?

Alice:
When I called the orbits a mess, I meant it in an affectionate way. It reminded me of my room, which I haven't cleaned up for a while, but that's another story. How about inviting more art, and running this thing for a hundred million time steps, by going to t_end = 1000?

Bob:
You have my blessing.

|gravity> leapfrog2a > leapfrog2a_0.00001_1000.out
Please provide a value for the time step
0.00001
and for the duration of the run
1000
Initial total energy E_in = -0.866025
Final total energy E_out = -0.866025
absolute energy error: E_out - E_in = -5.78748e-10
relative energy error: (E_out - E_in) / E_in = 6.6828e-10
|gravity>


Next: 5.7 The End of Up: 5. Exploring with a Previous: 5.5 Priming the Pump
Jun Makino