Log-Space Coordinate Discovery
While exploring Meta-Calculus, we noticed bigeometric-inspired coordinates dramatically helped singular ODEs at the origin: in the stored Lane-Emden n=3 comparison, 7.7x fewer function evaluations and a 30x smaller error, with the caveats below. Not universal: Bessel J0 got less accurate.
Log-Space Coordinate Transform
In the stored comparison, solving Lane-Emden in u = ln x used 7.7x fewer right-hand-side evaluations with a 30x smaller error (n = 3). The same transform on Bessel J0 cut evaluations 2.9x but made the error 10x larger.
These ratios are properties of this stored run setup, not of the coordinate alone. The classical x-space runs are capped at max_step = 0.01 by the script (about 2,000 RK45 steps over x up to 20, roughly 12,000 evaluations); the log-space runs are not capped. Much of the reduction comes from that cap, not from the 2/x term alone. The classical xi_1 is the first nonpositive output sample on a fixed output grid; the log-space xi_1 is a linearly interpolated zero crossing. Part of the error difference comes from these two estimators, not from the coordinate.
How This Was Discovered
During development of the meta-calculus framework, we initially claimed that "modifying the equation" with NNC techniques improved numerical performance. Critical self-audit revealed this was wrong: the modified equation gave different physics (wrong xi_1 values).
The correct insight came from understanding what bigeometric calculus actually does: it operates in log-space. Instead of modifying equations, we should transform coordinates - solving the same equation in a chart where the singular endpoint is moved to the boundary.
The result on Lane-Emden: same equation, same answer, fewer evaluations in the stored run, where only the classical solver is step-capped.
Interactive Demonstration
The Mathematics
Classical Formulation
- - The 2/x term diverges as x approaches 0
- - Numerical integrators need tiny step sizes
- - Error accumulates near the singularity
Log-Space Formulation
- - Coefficients are smooth for all finite u
- - The singular endpoint x = 0 sits at u = -infinity
- - The solution itself is unchanged; only the coordinate is
The Transform
This simple coordinate change maps x = 0 to u = -infinity. The singularity moves from the interior of the domain (where the integrator must pass through) to the boundary (where it never goes). The equations are mathematically equivalent - same solutions, same physics, just different coordinates.
Connection to Bigeometric Calculus
The bigeometric derivative of a power law is constant. This is because D_BG measures multiplicative rates of change, and power laws have uniform multiplicative structure. In log-space, power laws become linear - the same insight that makes log-space coordinates effective for singular ODEs with power-law behavior.
The log-space transform is not an approximation or a "modified physics" approach. It is a rigorous coordinate transformation that preserves all physical content while changing the numerical behavior. The connection to bigeometric calculus is motivation only: D_BG[x^n] = e^n is a derivative identity on x > 0 and does not remove singularities.
Quantitative Results
Stored benchmark rows
| Problem | Classical error | Log-space error | Error ratio | RHS evaluations (classical / log) | Evaluation ratio |
|---|---|---|---|---|---|
| Lane-Emden n=3 | 9.57e-4 | 3.16e-5 | 30.3x better | 12080 / 1562 | 7.73x |
| Lane-Emden n=4 | 3.97e-4 | 8.25e-5 | 4.8x better | 12086 / 1496 | 8.08x |
| Lane-Emden n=5 | n/a | n/a | n/a | 12092 / 1430 | 8.46x |
| Bessel J0 | 4.87e-6 | 4.67e-5 | 9.6x worse | 12182 / 4262 | 2.86x |
Lane-Emden errors are relative errors in the first zero xi_1 against reference values in the script. The classical xi_1 is the first nonpositive output sample on a fixed output grid; the log-space xi_1 is a linearly interpolated zero crossing. Part of the error difference comes from these two estimators, not from the coordinate. Counts are solve_ivp right-hand-side evaluations (nfev). The classical x-space runs are capped at max_step = 0.01 by the script (about 2,000 RK45 steps over x up to 20, roughly 12,000 evaluations); the log-space runs are not capped. Much of the reduction comes from that cap, not from the 2/x term alone.n = 5 has no finite xi_1; the script stores a 0.1 placeholder for both runs. Bessel error is the max deviation from scipy.special.j0. The largest accuracy ratio anywhere in the file is 2218x (power_law_n-2, a power-law quadrature test, not an ODE).
Reproduce These Results
# From the toolkit repository root pip install numpy scipy python simulations/tractability_benchmarks.py # Stored RHS evaluation counts, nfev (results/tractability_benchmarks.json): # Lane-Emden n=3: classical 12080, log-space 1562 # Lane-Emden n=4: classical 12086, log-space 1496 # Lane-Emden n=5: classical 12092, log-space 1430 # Bessel J0: classical 12182, log-space 4262
What the data supports
Supported by the stored runs
- - Lane-Emden n = 3, 4, 5: 7.7-8.5x fewer RHS evaluations (classical run capped), same xi_1
- - Lane-Emden n = 3: 30x smaller error; n = 4: 4.8x
- - Bessel J0: 2.9x fewer RHS evaluations but 10x larger error
Not yet shown
- - Error vs step-count convergence curves
- - Regular ODEs and singularities at infinity (no stored runs)
- - Analytic n = 0, 1 Lane-Emden checks (not in the artifact)
- - PDE extensions