Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Incremental 4DVar on Lorenz-63 — analysis + free forecast

The operational fast path. Same problem as strong-4DVar but the inner minimisation is split into Gauss-Newton outer iterations (linearise around the current iterate) and CG inner iterations (solve the linearised quadratic). At each outer iteration:

  1. Linearise MtM_t, HtH_t at the current outer iterate.
  2. Form the Gauss-Newton Hessian JGN′′=B−1+∑t(Ht′Mt′)⊤Rt−1(Ht′Mt′)J''_\text{GN} = B^{-1} + \sum_t (H'_t M'_t)^\top R_t^{-1} (H'_t M'_t).
  3. Solve JGN′′ δx∗=−∇J(xb)J''_\text{GN}\,\delta x^* = -\nabla J(x_b) with lineax.CG.
  4. Update xb(k+1)=xb(k)+δx∗x_b^{(k+1)} = x_b^{(k)} + \delta x^*.

1. Shared problem

2. Build Incremental-4DVar

Incremental-4DVar rmse_assim    = 1.204
Incremental-4DVar rmse_forecast = 2.168
Incremental-4DVar rmse_total    = 2.129
Incremental-4DVar runtime       = 8820.7 ms

3. Trajectories

<Figure size 1100x650 with 3 Axes>

4. RMSE(t)

<Figure size 1000x350 with 1 Axes>

5. Discussion

Incremental-4DVar reaches similar forecast skill to strong-4DVar at a similar per-evaluation cost on this 3-D problem. The operational win shows up at larger state dimensions (see the L96 benchmarks), where the GN/CG split lets us avoid full-Newton on the nonlinear cost and instead invert a CG-approximated Hessian at each outer step.

At larger state dimensions and stiffer dynamics — e.g. the two- level L96 — incremental-4DVar’s GN linearisation can become numerically singular; see notebook 12_lorenz96_2l_benchmark for the documented failure mode.