13.6 Control Parameters for ODE Solving
The calls to the integrators shown above just used the default control settings. Both the non-stiff and stiff integrators allow three additional arguments, all of which must be supplied if any of them is required.
y_hat = integrate_ode_bdf(sho, y0, t0, ts, theta, x_r, x_i,
rel_tol, abs_tol, max_steps);
The three control arguments are relative tolerance, absolute
tolerance, and maximum number of steps. The default values for
relative and absolute tolerance are both 1e-6
(\(10^{-6}\)), and
the default maximum number of steps is 1e6
(\(10^6\)).
Data only for control parameters
The control parameters must be data variables—they can not be
parameters or expressions that depend on parameters, including local
variables in any block other than transformed data and generated
quantities. User-defined function arguments may be qualified as only
allowing data arguments using the data
qualifier.
Tolerance
The relative and absolute tolerance control the accuracy of the solutions generated by the integrator. Relative tolerances are relative to the solution value, whereas absolute tolerances is the maximum absolute error allowed in a solution.
Smaller tolerances produce more accurate solutions. Smaller tolerances also require more computation time.
Sensitivity Analysis
The tolerances should be set low enough that setting them lower does not change the statistical properties of posterior samples generated by the Stan program.
Maximum Number of Steps
The maximum number of steps can be used to stop a runaway simulation. This can arise in MCMC when a bad jump is taken, particularly during warmup. With the non-stiff solver, this may result in jumping into a stiff region of the parameter space, which would require a small step size and many steps to satisfy even modest tolerances.