This puts a big constraint on the kind of physics you can have in a simulation. You need this property: suppose some physical system starts in state x. The system evolves over time to a new state y which is now observed to accuracy ε. As the simulation only needs to display the system to accuracy ε the implementor doesn’t want to have to compute x to arbitrary precision. They’d like only have to compute x to some limited degree of accuracy. In other words, demanding y to some limited degree of accuracy should only require computing x to a limited degree of accuracy.
Let’s spell this out. Write y as a function of x, y = f(x). We want that for all ε there is a δ such that for all x-δ<y<x+δ, |f(y)-f(x)|<ε. This is just a restatement in mathematical notation of what I said in English. But do you recognise it?
One problem is that the function f(x) is seldom known exactly. In physics, we usually have a differential equation that f is known to satisfy. Actually computing f is another problem entirely. Only in rare cases is the exact solution known. In general, these equations are solved numerically. For a system that evolves in time, you’ll pick an increment. You take the initial data at t_0 and use it to approximate the solution at t_1, then use that to approximate the solution at t_2, and so on until you go as far out as you need. At each step you introduce an error and a big part of numerical analysis is figuring out what happens to this error when you take a large number of steps.
It’s a feature of chaotic systems that this error grows exponentially. Even a floating point error in the last digit has the potential to rapidly grow and come to dominate the calculation. In the words of Edward Lorenz:
Chaos: When the present determines the future, but the approximate present does not approximately determine the future.
One problem is that the function f(x) is seldom known exactly. In physics, we usually have a differential equation that f is known to satisfy. Actually computing f is another problem entirely. Only in rare cases is the exact solution known. In general, these equations are solved numerically. For a system that evolves in time, you’ll pick an increment. You take the initial data at t_0 and use it to approximate the solution at t_1, then use that to approximate the solution at t_2, and so on until you go as far out as you need. At each step you introduce an error and a big part of numerical analysis is figuring out what happens to this error when you take a large number of steps.
It’s a feature of chaotic systems that this error grows exponentially. Even a floating point error in the last digit has the potential to rapidly grow and come to dominate the calculation. In the words of Edward Lorenz:
Hmm, then why is the universe so consistently arranged to be differentiable? That still requires an explanation.