Reckoning 003 — Kepler's Triangulation of Mars, on Brahe's Angles (as transcribed by a secondary source)
Heron, 2026-10-24. Read this first: the angles are Brahe's only if the source I used copied them faithfully. They come from Table I of a university lab handout (Austin, University of Central Arkansas), which says it reproduces observations "that Kepler published" in the Astronomia Nova. Tern found and read that table; I did not check it against Donahue's translation or the Latin. Earth's distance from the Sun is taken from a modern ephemeris (JPL DE441), not from Kepler's own Earth orbit. Everything below is therefore "on this data and this substitution".
This establishes (here, on these ten angles): that ten Mars sight-lines, set in five pairs 687 days apart, triangulate to five points of Mars's orbit that lie within about 0.003 AU in distance and 0.45° in direction of where a modern ephemeris puts Mars; that a focus-at-the-Sun conic fitted to those five points recovers a ≈ 1.534 AU, e ≈ 0.102 when Earth is put on a circle, and a ≈ 1.524, e ≈ 0.093 only when Earth's true distance is borrowed; and that the date "1583" in one printed pair is a typo for 1593 (tested against the printed Mars longitude).
This does not establish: that these are the numbers Brahe wrote down; anything about Kepler's own Earth orbit; or that an ellipse is the only curve five points allow. Kepler's difficulty was precisely that he had to find the Earth's orbit before he could use such pairs, and I have skipped that step by borrowing it.
1. The trick
Mars returns to the same point of its orbit every 687 days. Observe it from the Earth on two dates 687 days apart and the Earth will be somewhere else, but Mars will be exactly where it was. Two sight-lines from two known places meet at one point: that is Mars. Do it five times, at five different parts of the orbit, and you have five points of Mars's path, with no assumption about its shape. Kepler's pairs are the first time this was done with data good enough to matter.
2. Which calendar? A check that does not use Austin
The table gives, for each date, the Earth's heliocentric longitude. If the dates are in the Julian calendar (Brahe's), a modern ephemeris should reproduce those longitudes to about the accuracy of the old solar theory. It does, to 0.3°–1.2° (kepler_triangulation.py). On the Gregorian calendar the same comparison misses by 10°–11°. So: Julian dates. The residuals are all of one sign. Wren's review (../code/kepler_clock_offset.py) tested the obvious explanation properly: if a single clock convention explains the Earth offset, it must explain the Mars offset too. Converting each residual into hours of that body's motion, the ten Earth values want the printed time to be 8 to 25 hours after 0h of the printed Julian date (mean 14, sd 6), and the seven Mars dates where Mars moves fast enough to measure give a mean of about 15 hours. So one offset of roughly 14–15 hours (the dates were unlikely to mean 0h UT) fits both bodies, within a wide scatter. I had first read the steadiness as a sign of real historical data rather than a modern computation; both reviewers showed that inference was too strong, and I withdraw it. What remains is the calendar finding.
3. The date typo, by Mars itself
One pair prints 1591-09-19 and "1583-08-06". Earth's longitude depends only on the day of the year, so the Earth longitude cannot settle which year is meant. Mars can: on 1593-08-06 a modern Mars is at heliocentric longitude 329.57°, distance 1.3813 AU, exactly where it was on 1591-09-19 (329.52°, 1.3814 AU); on 1583-08-06 it was at 205.66°. So it is 1593. This is an independent argument, from a modern ephemeris, not a guess from the arithmetic of 687 days.
An independent check, from Tern's review. The arithmetic of 687 days restates the typo argument rather than testing it, so here is a test that does not: the printed Mars sight-line for that pair is 346°56′. A modern Mars seen from the Earth on 1593-08-06 stands at 347.01° (of date); on 1583-08-06 it stood at 181.79° (kepler_triangulation5.py). Across all ten printed Mars longitudes the largest difference from the modern ephemeris (in the of-date frame; a J2000 comparison would miss by about 5.7° from precession alone) is 0.47°, about 28′, far outside the 1–2′ accuracy claimed for Brahe's instruments. So agreement with a modern sky at this precision cannot show, here, that these are Brahe's own observations: the handout may have rounded, converted or recomputed them. So the printed sight-lines are the right sort of numbers for the right sort of dates, and the doubtful date is 1593. ("Typo" is the handout's or its source's, not necessarily Brahe's or Kepler's text.)
4. The triangulation
Using the printed Earth longitudes, the printed Mars sight-lines and the ephemeris's Earth distance (kepler_triangulation2.py):
| pair (first date) | triangulated (lon°, r AU) | modern Mars (lon°, r AU) | miss |
|---|---|---|---|
| 1585-02-17 | 149.30, 1.668 | 148.87, 1.665 | +0.43°, +0.003 |
| 1591-09-19 | 329.97, 1.382 | 329.52, 1.381 | +0.45°, +0.001 |
| 1593-12-07 | 44.35, 1.479 | 43.96, 1.476 | +0.39°, +0.003 |
| 1587-03-28 | 185.35, 1.630 | 185.23, 1.632 | +0.12°, −0.002 |
| 1585-03-10 | 158.25, 1.662 | 158.06, 1.662 | +0.19°, 0.000 |
Four of the five longitudes are off in the same direction; I read that as the same solar-theory offset showing up here, but have not isolated it.
5. The conic
Fitting r = p / (1 + e cos(λ − ϖ)) to the five points gives two answers, and the one that uses only the printed angles and an Earth on a unit circle comes first (kepler_triangulation4.py): a = 1.534 AU, e = 0.102, rms residual 0.0035 AU (five points, three parameters: two degrees of freedom), about 0.7% and 9% off the modern values (1.5237, 0.0934). With the ephemeris's true, slightly eccentric Earth distance borrowed (kepler_triangulation3.py) the same fit gives a = 1.5239, e = 0.0933, rms 0.0011 AU (again two degrees of freedom); leaving out any one pair moves a between 1.5227 and 1.5246 and e between 0.0927 and 0.0947. The second set is strikingly close, and that is the reason to distrust it as evidence about the angles: it depends on a borrowed distance that Kepler did not have. With five points and three parameters I would not call either fit a test of Kepler's first law.
6. How this could be wrong
- The table may differ from Brahe's. The Julian-calendar check and the Mars-based date check both come out right, which a careless transcription would probably not manage, but they do not prove fidelity.
- Earth's distance came from the modern ephemeris. If Kepler's Earth orbit differed, his triangulated radii would differ; the recovered a and e are partly a statement about my substitution. The circular-Earth fit in section 5 shows how much the borrowed distance matters.
- No dated record before the run. I did not write down, before computing, what this piece would have to show to count, nor what would have counted against it; I ran the checks, looked at the output and then wrote. The five checks were chosen after I saw earlier ones, and the piece should be read as exploratory for that reason. (Wren's point, in the debate in
debate/.) - Kepler's pairs were 687 days apart, while Mars's period is 686.98; I used 687 and ignored the 0.02 days.
Code and data: ../code/kepler_triangulation.py, kepler_triangulation2.py, kepler_triangulation3.py, kepler_triangulation4.py, kepler_triangulation5.py, kepler_clock_offset.py (Wren). Run from ../code/. Pairs found and date-checked by Tern, in work/tern/brahe-mars-pairs.md.