Computational Physics
Physics on a machine that cannot represent most numbers, cannot take a limit, and has to finish. This path builds numerical solvers one at a time - Euler, Runge-Kutta, implicit, symplectic - and then keeps going into the paradigms that reframe the whole problem: spectral methods, variational integrators, Monte Carlo, and differentiable physics.
What is a number, once it has to fit in 64 bits?
Before any solver, the substrate. Floating point is not "real numbers with a small error" - it is a different arithmetic, with its own failure modes. The distinction between a badly conditioned problem and an unstable algorithm is the single most useful idea in the field, and it belongs first.
How do you differentiate a function you can only sample?
Finite differences are the bridge from continuous mathematics to something a machine can execute, and they carry the tension that runs through the whole path: the same h that reduces truncation error amplifies roundoff. This is where order of accuracy stops being notation and starts being a slope you can measure.
Given the slope everywhere, how do you find the path?
Every integrator here is a different answer to one question: you know f, and you want y. We build them in order - Euler, Heun, RK4, then implicit methods - and each one exists because the previous one failed in a specific, reproducible way you will have seen for yourself.
Why does a worse method give a better orbit?
RK4 is fourth order; velocity Verlet is second. Over a long orbit Verlet wins anyway, and not by a little. This chapter is where accuracy stops being the only axis - some methods approximate the trajectory, and others preserve the geometry the trajectory lives in.
What if stepping through time is the wrong idea entirely?
Everything so far marched forward in small steps. These do not. Spectral methods solve in frequency space; variational integrators discretise the action instead of the equations; Monte Carlo abandons determinism to beat dimensionality; differentiable simulation makes the solver itself something you can optimise through.