Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument mechanism / verified-clean

ODE Solver (Euler / RK4 / RK45) mechanism

The inspectable method record for ODE Solver (Euler / RK4 / RK45), kept separate from implementation and qualification.

Status: VERIFIED_CLEANLifecycle: verified-clean

Model scope

The stated methods are standard and the fixed-step test vectors are correct. The specification needs the exact Euler and RK4 formulas plus a complete Dormand-Prince RK45 error-control contract before the implementation can be verified as deterministic. The honest label is appropriate but should explicitly mention truncation error, tolerance semantics, and possible failure on stiff or nonsmooth problems.

  • Euler is named as a supported method, but its formula is not specified. The standard update should be y_{n+1}=y_n+h f(x_n,y_n).
  • RK4 is described too vaguely to verify implementation details; the standard method requires k1=f(x_n,y_n), k2=f(x_n+h/2,y_n+h k1/2), k3=f(x_n+h/2,y_n+h k2/2), k4=f(x_n+h,y_n+h k3), followed by y_{n+1}=y_n+(h/6)(k1+2k2+2k3+k4).
  • RK45 is not fully specified: Dormand-Prince coefficients, embedded fourth- and fifth-order estimates, error norm, safety factor, step-size controller, minimum and maximum step sizes, and endpoint handling are all omitted.
  • For systems, f(x,y) must explicitly support vector-valued y and componentwise vector arithmetic; this is not stated.
  • The claim of step-size control needs an explicit acceptance/rejection rule and a termination condition.

Units and conventions

  • x and the independent-variable step h use the same units.
  • y and f(x,y) use compatible units, with f having units of y per unit x.
  • The Euler test uses t in seconds, y in metres, and f=1 metre/second.
  • Numerical tolerances are dimensionless only if the implementation uses normalized or relative error; otherwise their units and scaling must be specified.
  • The vectors use real-valued, nonstiff problems with finite function evaluations.

Inspectable vector

One of 4 source-bound review vectors:

{
  "inputs": {
    "method": "Euler",
    "f": "dy/dt = 1 metre/second",
    "initial_condition": {
      "t": 0,
      "y": 0
    },
    "interval": [
      0,
      1
    ],
    "step_size": 0.25,
    "units": {
      "t": "second",
      "y": "metre"
    }
  },
  "expected_outputs": {
    "trajectory": [
      {
        "t": 0,
        "y": 0
      },
      {
        "t": 0.25,
        "y": 0.25
      },
      {
        "t": 0.5,
        "y": 0.5
      },
      {
        "t": 0.75,
        "y": 0.75
      },
      {
        "t": 1,
        "y": 1
      }
    ],
    "final_y": 1
  },
  "working": "Use y_{n+1}=y_n+h f(t_n,y_n), with h=0.25 second and f=1 metre/second. Start y0=0. First step: y1=0+0.25*1=0.25 metre. Second: y2=0.25+0.25*1=0.50 metre. Third: y3=0.50+0.25*1=0.75 metre. Fourth: y4=0.75+0.25*1=1.00 metre. This is also the exact solution y=t for this constant-slope case. The zero initial value and interval boundary t=0 provide an edge case."
}

Failure boundary

  • A zero, negative, NaN, or excessively large step size can cause invalid progression or nontermination unless explicitly rejected.
  • Adaptive control can divide by zero or produce an undefined next step when the estimated error is zero; the implementation needs a defined zero-error step-growth rule and a maximum step size.
  • Absolute-only error control can accept poor results for large-magnitude states, while relative-only control can fail near zero; the error norm and scaling must be specified.
  • Discontinuous, non-Lipschitz, or undefined f values can invalidate convergence assumptions.
  • Stiff systems may require implicit methods; the current honest label mentions stiffness but does not state that explicit Euler, RK4, and Dormand-Prince can fail or become impractical.
  • Backward integration, interval endpoints not divisible by h, and rejected adaptive steps need explicit handling.
  • Systems require componentwise absolute/relative tolerances or a clearly defined vector norm.

Other records

Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

  • VERIFIED_LEDGER.json
  • evidence-tranche6/tranche6-results.json