Local Level Lab

Airborne measurements. Open methods.

Global bounds for the native midpoint local step

This follows the completed calibration/rotation component study. It addresses the actual local step used by the prediction engine, rather than substituting constant-body-force preintegration. No archive originals or model fits are used.

Mathematical propagation

Represent each input by its nominal value, maximum change over the complete declared region and first-order Taylor remainder. Keep scalar/vector and orthogonal/contraction matrix structure distinct. For products, retain the product of input changes; independence is not assumed.

For B(a)=(I+S(a))^-1, skew symmetry gives operator norm at most one. The resolvent identity bounds its change by min(2, norm(delta_a)) and its first-order remainder by norm(delta_a)^2. For T(a)=2B(a)-I, orthogonality gives change bound min(2, 2*norm(delta_a)) and remainder coefficient two. Add input approximation errors through their derivative bounds. Exponential rotations use the previously qualified global derivative bounds.

Propagate

win = physical_background + transport - removal*standard_background, a = (2*physical_background + transport)*dt/2, middle = Exp(-win*dt/2)*attitude*Exp(theta/2), attitude_next = Exp(-win*dt)*attitude*Exp(theta), and velocity_next = T(a)*velocity + B(a)*(middle*dv + gravity*dt).

The standard background is Omega*(cos(latitude),0,-sin(latitude)) for every candidate. The physical background is that vector only for the specified-field globe. Removal does not change the physical Coriolis argument. Bound latitude dependence and the removal/vector product jointly. Preserve positive gravity, removal in [0,1], fixed positive dt and supported latitude domains.

Independent comparisons

Use SciPy matrix exponentials and linear solves for a separate value reference; use complex-step directional derivatives of that reference. Separately compile a thin wrapper around the existing static C local step. The wrapper includes the unchanged kernel source and performs no full-record integration.

Thirty fixed cases: all three candidates, latitudes ±65°, fixed-zero/profiled removal and narrow/broad parameter boxes (24 cases), plus zero-rate centers for each candidate/removal pair (six cases). Each case uses 64 predeclared probes in a shared 24-parameter input box. Keep all inputs, parameter vectors, nominal values, derivatives, remainders and failures. Broad cases include a full yaw range; tests are not restricted to a favorable local neighborhood.

Require observed changes and Taylor remainders within their analytic radii, and C/reference agreement within 2e-12*(1 + norm(value) + norm(linear_term) + radius). This numerical comparison tolerance is not a whole-record rounding certificate. Each identity reserves all 65 C calls and 129 independent reference calls before execution. No interrupted allowance is refunded or retried.

Limits: 30 identities, 1,920 probes, 1,950 software C local-step calls, 3,870 independent reference calls, 300 cooperative seconds, one worker/four threads, zero original reads, archive-native sweeps, optimizer starts or retries. Freeze source, compiler configuration, binary, inputs and numerical environment before execution. Check the wall allowance between bounded operations; use no signals.

What remains

The local step assumes global input bounds. Candidate geographic-rate/context generation and predictor/corrector closure are next, followed by lever arms, receiver timing across packets and long-record arithmetic. A component pass does not supply missing bounds or observational covariance calibration. No archive prediction fit follows automatically.

Previous components · Roadmap.