BSDE Precision
This page documents the one-time high-precision verification of the least-squares Monte Carlo (BSDE) solver against exact solutions. It is a companion to the Classical Methods page, which records the tolerances asserted by the automated test suite. The standard suite bounds coarse, smoke-level BSDE error; the target here is the tighter \(\leq 0.1\%\) relative error that the BSDE solver should reach when it is correct.
Scope
The verification covers every exact-solution benchmark the BSDE path can solve:
- Merton log-utility portfolio (one dimension).
- Finite-horizon linear-quadratic regulator (one dimension).
- Avellaneda-Stoikov market making and its drift and impact variants.
For each problem the exact closed form is stated once in Exact Solutions in Stochastic Optimal Control. This page records only the concrete verification parameter set, the resulting reference value, and the measured error.
Metric
All errors are reported with the canonical metric defined on the Validation page.
Merton portfolio
Reference closed form in Exact Solutions in Stochastic Optimal Control. With \(r = 0\), \(\mu = 0.1\), \(\sigma = 0.3\), \(T = 0.5\), \(x_0 = 10\) the exact value is \(V(0, 10) = 2.330363\).
A fixed-seed replicate study (solver/examples/bsde_noise_vs_bias) at
dt = 0.005, 100_000 paths, five replicates, Hermite(4), reg = 1e-3
gives a mean relative error of 0.04% with a standard error of 0.01%.
The mean is within three standard errors of zero, so the residual is Monte
Carlo noise: there is no detectable deterministic bias.
Finite-horizon linear-quadratic regulator
Reference Riccati closed form in
Exact Solutions in Stochastic Optimal Control.
With \(A = -0.5\), \(B = 1\), \(C = 0.1\), \(Q = 1\), \(Q_T = 1\), \(R = 1\),
\(T = 0.5\), \(x_0 = 0.5\), the Riccati value used by
LqRegulator::exact_value is approximately -0.18666439.
A fixed-seed replicate study (solver/examples/bsde_noise_vs_bias) at
dt = 0.005, 100_000 paths, five replicates, Hermite(4), reg = 1e-3
gives a mean relative error of 0.47% with a standard error of 0.05%.
The mean is roughly nine standard errors from zero, so this is a
deterministic bias, not noise. It is Euler-Maruyama discretization
error: halving the time step to dt = 0.0025 lowers the mean to 0.30%.
The \(\leq 0.1\%\) target is therefore time-step limited; reaching it for the
LQ value requires dt below about 0.001 at this path count.
Avellaneda-Stoikov market making
Reference matrix-exponential closed form in
Exact Solutions in Stochastic Optimal Control.
With \(\gamma = 0.5\), \(k = 1.5\) the base total spread is \(2\delta_0 = 1.15073\),
and the exact total spread at \(q = 1\) is approximately 1.18164 (the
inventory skew contributes 0.03091).
A single-replicate run at dt = 0.005, 20_000 paths gives a total spread
within 0.02% of the exact 1.18164; the inventory skew is recovered.
Drift and impact variants
Reference spectral closed forms in Exact Solutions in Stochastic Optimal Control. The degeneracy limits are \(\mu = 0\) (drift) and \(\xi = 0\) (impact), both of which reduce to the base Avellaneda-Stoikov exact spread. The reduced forward pass holds the inventory (jump) dimension fixed; the reason the reduced value must not simulate inventory jumps is in BSDE Solver.
The drift total spread recovers the exact skew to within Monte Carlo noise
(0.02% mean, 0.008% SEM at 100_000 paths). The impact total spread
matches the exact solution to within Monte Carlo noise (0.0000% at the same
settings).
Conclusion
A fixed-seed replicate study (solver/examples/bsde_noise_vs_bias,
dt = 0.005, 100_000 paths, five replicates) gives:
| Problem | Mean rel err | SEM | Interpretation |
|---|---|---|---|
| Merton value | 0.04% | 0.01% | noise only |
| Finite-horizon LQ value | 0.47% | 0.05% | O(dt) discretization bias |
| Avellaneda-Stoikov spread | 0.02% | 0.008% | noise only |
| Drift spread | 0.02% | 0.008% | noise only |
| Impact spread | 0.0000% | 0.0000% | noise only |
The <= 0.1% target is met for Merton, Avellaneda-Stoikov, drift, and
impact. The LQ value is time-step limited (needs dt <= ~0.001), tracked as
I18.