Skip to main content

gauss_newton_krawczyk_step

Function gauss_newton_krawczyk_step 

Source
pub fn gauss_newton_krawczyk_step<S: Scalar, const M: usize>(
    x_hat: Vector<S, 2>,
    f_hat: Vector<S, M>,
    jac_hat: Matrix<S, M, 2>,
    x_box: Vector<S, 2>,
    jac_box: Matrix<S, M, 2>,
) -> GeopResult<KrawczykStep<S>>
Expand description

One Gauss-Newton-Krawczyk contraction of the box x_box = (s_box, t_box) against F(s, t) ∈ Rᴹ.

  • x_hat: the evaluation point (sharp midpoint of x_box).
  • f_hat: F(x̂).
  • jac_hat: J(x̂), M×2 — evaluated at the sharp point x̂ (this is what makes JᵀJ an ordinary — not interval — 2×2 system, solvable by plain Gaussian elimination).
  • jac_box: J(X), M×2 — the same Jacobian, but evaluated as an enclosure over the whole incoming box (interval arithmetic over x_box, not just the midpoint) — this is what lets the contraction step be rigorous rather than merely a numerical guess.

Errs only when JᵀJ (built from the sharp jac_hat) is singular — tangential/rank-deficient curves at x̂, Cauchy-Schwarz equality in |C1'|²|C2'|² = (C1'·C2')² — a fixed, structural signal to the caller that this system needs deflating (see the module doc comment) rather than a transient numerical hiccup to retry.