Turning Episode 3's homework from argument into calculation ── no warping needed. But the finite differences have one condition
There is a position this series' readers have taken consistently ── space does not warp; instead the way light travels changes. And the universe can be computed by finite differences.
Episode 3 answered that "with a tensor it stands up," but never stood it up. This episode does. It uses only flat Euclidean coordinates, and the lattice stays orthogonal to the end.
The result splits in two. The physics goes through completely ── 42.9807 arcsec/century, ratio to GR 1.0000.
And the finite differences turned out to have one condition that cannot be skipped. Not a matter of taste but the boundary between solvable and unsolvable in double precision.
These are the only coordinates. They never change.
$$dx^2+dy^2+dz^2\qquad\text{(Euclidean. an orthogonal lattice. no warping)}$$Instead of warping, put two functions at each point.
\(\rho=\sqrt{x^2+y^2+z^2}\) is just Euclidean distance. This is not an approximation ── it is the Schwarzschild solution rewritten, exactly.
Here is the point. The spatial part stays \(dx^2+dy^2+dz^2\), with only a number \(B^4\) multiplying it. The lattice is not warped. What looks like warping is that the "resistance to travel" sitting on the lattice differs from place to place.
That there are two functions will matter later. The time-side \(A\) and the space-side \(B\) are different functions. That was what Episode 3's "one word" really was.
Written in Hamiltonian form, it lands in a shape easy to discretize. With \(c=1\), \(F=A^{-2}\), \(G=B^{-4}\) ──
\(E\) is a conserved quantity (the momentum in the time direction). Launch tangentially from perihelion, orbit with RK4, and record the azimuth each time perihelion is passed. The azimuth is not folded into \(2\pi\) along the way; it is accumulated from the start ── I actually got this wrong once (see below).
# Sun m = GM/c^2 = 1476.6250 m # Mercury a = 5.790905e10 m, e = 0.2056302, T = 87.9691 days # weakness measure m/a = 2.550e-08 general relativity prediction 6 pi m /(a(1-e^2)) = 5.018663e-07 rad/orbit = 42.9807 arcsec/century # step-size convergence (exact Schwarzschild, 4 orbits) steps/orbit = 2000 42.9860 GR ratio 1.000124 (0.1 s) steps/orbit = 5000 42.9808 GR ratio 1.000004 (0.2 s) steps/orbit = 10000 42.9807 GR ratio 1.000000 (0.4 s) steps/orbit = 20000 42.9806 GR ratio 0.999999 (0.9 s) # the real run (10000 steps/orbit, 6 orbits) exact Schwarzschild (isotropic coords) 42.9807 arcsec/century GR ratio 1.0000
There it is. The coordinates were never warped. All we did was put \(A\) and \(B\) on a Euclidean lattice and integrate the geodesic.
Let us verify Episode 3's claim ── how far off do you land if you drop the space-side function?
Written in PPN form it becomes exactly one knob. With \(U=m/\rho\),
$$ds^2=-\bigl(1-2U+2\beta U^2\bigr)dt^2+\bigl(1+2\gamma U\bigr)\bigl(dx^2+dy^2+dz^2\bigr)$$\(\gamma\) is "the space-side word." \(\gamma=0\) means returning space to plain Euclidean ── the most naive reading of "variable speed of light," where only the rate of time varies with place. General relativity has \(\gamma=1\).
model perihelion advance GR ratio ----------------------------------------------------- exact Schwarzschild 42.9807 arcsec/century 1.0000 PPN gamma = 1 42.9807 1.0000 PPN gamma = 0.5 28.6538 0.6667 PPN gamma = 0 14.3269 0.3333 analytic formula (2 + 2 gamma - beta)/3 : gamma=1 -> 1.0000 42.9807 gamma=0.5 -> 0.6667 28.6538 gamma=0 -> 0.3333 14.3269 agrees to all digits
Drop the space side and the answer becomes a third. 14.33 arcsec/century. Mercury's perihelion advance has been measured since the nineteenth century, with a history of every explanation other than general relativity failing ── a third is on the failure side.
And \(\gamma\) has been measured independently. From Cassini's radio delay,
$$\gamma-1=(2.1\pm2.3)\times10^{-5}$$Measured against that error, \(\gamma=0\) is more than 40,000σ away. The reading "only time varies and space stays plain" is crushed by observation. Episode 3's "one word" was a genuinely necessary word.
Look closely at the lattice lines. Not one of them is bent. What is rotating is only the orbit.
When planning this episode I thought "light only sees the ratio \(F/G\), so it cannot decide \(\gamma\)." That was wrong. Compute it and light sees \(\gamma\) too.
| light bending (solar limb) | Mercury's perihelion | |
|---|---|---|
| form of the weight | \(\dfrac{1+\gamma}{2}\) | \(\dfrac{2+2\gamma-\beta}{3}\) |
| \(\gamma=1\) (GR) | 1.75120″(theory 1.75119) | 42.98″ |
| \(\gamma=0\) | 0.87560″ (exactly half) | 14.33″ (exactly a third) |
Both respond to \(\gamma\), but with different weights. And light does not see \(\beta\) at all ── \(\beta\) does not appear in the light formula. So separating \(\gamma\) from \(\beta\) requires both light and Mercury. Why there are two kinds of observation falls out of the formulae.
This is the most practical part of the episode.
The equations of motion above contain \(F'\) and \(G'\). We have already seen that it goes through with analytic derivatives. So what happens if we replace them with central differences? That is the most straightforward test of the claim "the universe can be computed by finite differences."
frac (step / rho) perihelion advance GR ratio ------------------------------------------------- 1e-08 -135214.89 arcsec -3145.94 1e-06 9168.33 213.31 1e-04 -153.46 -3.57 1e-03 22.49 0.52 1e-02 18.28 0.42 No step size works. Not even the sign is right.
Broken to the point of flipping sign. This is not physics but precision. Estimate the reason and it becomes clear.
A relative correction of \(m/a=2.55\times10^{-8}\) against the main term (Newtonian gravity). To get it to 1%, the relative error of the derivative must be \(\eta\lesssim2.5\times10^{-10}\).
\(F-1\simeq2m/\rho=5.1\times10^{-8}\). Differencing numbers of order 1 in double precision carries an absolute error \(\varepsilon\simeq2.2\times10^{-16}\), so
$$\eta\;\simeq\;\frac{\varepsilon}{4\,(m/\rho)\,\mathrm{frac}}\;=\;\frac{2.2\times10^{-9}}{\mathrm{frac}}$$Rounding demands \(\mathrm{frac}>8.5\). Truncation (\(\sim2\,\mathrm{frac}^2\)) demands \(\mathrm{frac}<1.1\times10^{-5}\).
The step must be both 8.5 times and \(10^{-5}\) times the radius ── impossible.
With the naive approach of differencing the metric directly, Mercury's perihelion advance cannot be computed in double precision.
No choice of step works. What is needed is about six extra digits of precision ── go to quadruple precision and it goes through, but that is a price.
The fix is what numerical relativity actually does. Write "the deviation from 1" in a closed form with no cancellation.
Neither right-hand side contains "a subtraction of two nearly equal ones." So even when \(u\) is \(10^{-8}\), all the significant digits survive.
Difference these and the rounding error becomes relative not to "1" but to "\(F-1\simeq5\times10^{-8}\)" ── a gain of 8 digits.
frac (step / rho) perihelion advance GR ratio ------------------------------------------------- 1e-09 42.9533 0.999361 1e-07 42.9826 1.000042 1e-06 42.9812 1.000010 1e-05 42.9808 1.000000 1e-04 42.9807 0.999999 1e-03 42.9811 1.000009 It goes through. And stable across four decades of step size. (the estimate gave a window of 4e-7 to 1e-5, 1.4 decades, so the estimate was conservative)
A flat lattice + two refractive-index functions = general relativity. Exactly.
No warping needed. It can be solved by finite differences. Mercury precesses at 42.9807 arcsec/century.
But make "the deviation from 1" the variable. This is not a stylistic preference but the boundary between solvable and unsolvable in double precision. That numerical relativity uses deviation variables (carrying \(h_{ij}\) in \(\gamma_{ij}=\delta_{ij}+h_{ij}\), and so on) is for exactly this reason.
| result | |
|---|---|
| does GR come out on an unwarped lattice? | yes. 42.9807″/century, GR ratio 1.0000. the coordinates stay Euclidean to the end |
| is the "one word" really needed? | yes. drop it and you get a third (14.33″). more than 40,000σ from Cassini's \(\gamma-1=(2.1\pm2.3)\times10^{-5}\) |
| can finite differences solve it? | yes, provided the deviation is the variable (naively it is impossible in double precision) |
| global structure | out of reach. horizons and topology cannot be written by re-covering with coordinates (Episode 3's price, unchanged) |
| can the flat background be observed? | no. so it cannot serve as a preferred frame ── it does not cause Episode 2's 18-order problem either, but it is not a physical lattice |
The last row is the heart of this position. A flat lattice works perfectly as "a lattice for computing" and never becomes "a lattice as the basic structure of the world." And if computing is all you want, that suffices ── numerical relativity does it every day.
What Episode 16 investigated was the case where the spacing is physical. There Lorentz violation appears and a symmetry mechanism is required. What this episode did is the case where the spacing is numerical. There, there was no obstacle at all.
General relativity stands up as it is on an unwarped lattice. The coordinates stay \(dx^2+dy^2+dz^2\) throughout. All we put on them were the two functions \(A(\rho)\) and \(B(\rho)\) (Schwarzschild in isotropic coordinates, exact). Integrating the geodesic with RK4 gives 42.9807 arcsec/century, GR ratio 1.0000. Convergence confirmed from 2000 to 20000 steps/orbit.
Episode 3's "one word" really was necessary. PPN's \(\gamma\) is the space-side word. Drop it (\(\gamma=0\), space back to plain Euclidean) and you get 14.3269 arcsec/century = exactly 1/3. \(\gamma=0.5\) gives 2/3. Agreeing to all digits with the analytic \((2+2\gamma-\beta)/3\). From Cassini's \(\gamma-1=(2.1\pm2.3)\times10^{-5}\), \(\gamma=0\) is more than 40,000σ away.
Light can decide it too ── my planning assumption was wrong. I thought "light only sees \(F/G\), so it cannot decide \(\gamma\)," but light bending is 1.75120″ at \(\gamma=1\) and 0.87560″ at \(\gamma=0\) (exactly half). Only the weights differ, \(\frac{1+\gamma}{2}\) versus \(\frac{2+2\gamma-\beta}{3}\). But light does not see \(\beta\), so separating \(\gamma\) from \(\beta\) needs both light and Mercury. Episode 3's "light hits because it is conformally invariant" was about FRW and was a different story.
Finite differences do solve it. But naively it is impossible in double precision. Central-differencing \(F,G\) directly gets not even the sign right at any step size. The reason: the perihelion advance is a correction of \(m/a=2.55\times10^{-8}\) against the main term while \(F-1\) is only \(5.1\times10^{-8}\). Rounding demands \(\mathrm{frac}>8.5\), truncation demands \(\mathrm{frac}<1.1\times10^{-5}\) ── incompatible.
The way past is "make the deviation the variable." Write \(F-1=\frac{4u}{(1-u)^2}\) and \(G-1=\frac{-u(4+6u+4u^2+u^3)}{(1+u)^4}\), subtracting the 1 algebraically in advance. Rounding then becomes relative to \(5\times10^{-8}\), a gain of 8 digits, and the GR ratio stays within 1.00001 over the wide range frac \(10^{-7}\)–\(10^{-3}\). Not a stylistic preference but the boundary between solvable and unsolvable. This is why numerical relativity uses deviation variables.
And what remains. Global structure (horizons, topology) is out of reach ── Episode 3's price, unchanged. And the flat background cannot be observed, so it cannot serve as a preferred frame. Which is to say this lattice is perfect as "a lattice for computing" and never becomes "a lattice as the basic structure of the world". What Episode 16 investigated was the latter (the spacing being physical), which needs a symmetry mechanism. For the former, there was no obstacle at all.
This document is Episode 17 of the "Lattice We Build" series, a reading piece for high-school and university students who love physics. Where the sister series "That Clicks" explains known physics, this series shows the work itself ── including the bugs I stepped in and where my planning assumptions were wrong.
Established material: the Schwarzschild solution in isotropic coordinates; the PPN formalism and \(\gamma,\beta\); the \(\frac{1+\gamma}{2}\) dependence of light bending and the \(\frac{2+2\gamma-\beta}{3}\) dependence of the perihelion advance; general relativity's perihelion advance \(6\pi GM/(c^2a(1-e^2))\); Mercury's orbital elements; Cassini's \(\gamma-1=(2.1\pm2.3)\times10^{-5}\) (Bertotti–Iess–Tortora 2003); and light bending at the solar limb, \(4GM/c^2R_\odot=1.751''\).
The numbers in this article (42.9807 arcsec/century, 28.6538 and 14.3269 at \(\gamma=0.5,0\), the light values 1.75120 and 0.87560, the step-convergence table, and the finite-difference tables) are the output of an RK4 integration code written by the author. Comparisons with the analytic formulae are given alongside throughout, and those are the arbiters. The estimates of the \(\eta\) and frac needed for 1% accuracy are order-of-magnitude arguments, with the coefficients 4 and 2 approximate (as the text shows, the measured tolerance window is wider than the estimate).
The statement "a flat lattice + two functions = general relativity" is not this article's original claim ── isotropic coordinates have been known for a century, and numerical relativity routinely solves on orthogonal lattices. What this article did was actually run the part Episode 3 left as an argument, confirm it numerically, and quantify the cancellation condition that shows up when you do.
That global structure is out of reach and that the flat background cannot be observed are as in Episode 3, and this episode does not improve on them.
Main series: Episode 1|Episode 2|Episode 3|Episode 4|Episode 5|Episode 6|Episode 7|Episode 8|Episode 9|Episode 10|Episode 11|Episode 12|Episode 13|Episode 14|Episode 15|Episode 16 | bonus: ①/②/③ ── to print, use your browser's "Print" → "Save as PDF."
Print / PDF: ⌘+P (Ctrl+P on Windows). In the figure you can confirm that only the orbit rotates while the lattice stays unwarped.