# GaussianIVPFilter¶

class probnum.diffeq.GaussianIVPFilter(ivp, gaussfilt, with_smoothing)[source]

ODE solver that behaves like a Gaussian filter.

This is based on continuous-discrete Gaussian filtering.

Note: this is specific for IVPs and does not apply without further considerations to, e.g., BVPs.

Parameters

gaussfilt (gaussianfilter.GaussianFilter) – e.g. the return value of ivp_to_ukf(), ivp_to_ekf1().

Notes

• gaussfilt.dynamicmodel contains the prior,

• gaussfilt.measurementmodel contains the information about the ODE right hand side function,

• gaussfilt.initialdistribution contains the information about the initial values.

Attributes Summary

Methods Summary

 Returns t0 and y0 (for the solver, which might be different to ivp.y0) method_callback(time, current_guess, …) Optional callback. postprocess(times, rvs) Rescale covariances with sigma square estimate, (if specified) smooth the estimate, return ODESolution. solve(steprule) Solve an IVP. step(t, t_new, current_rv) Gaussian IVP filter step as nonlinear Kalman filtering with zero data.

Attributes Documentation

prior

Methods Documentation

initialise()[source]

Returns t0 and y0 (for the solver, which might be different to ivp.y0)

method_callback(time, current_guess, current_error)

Optional callback.

Can be overwritten. Do this as soon as it is clear that the current guess is accepted, but before storing it. No return. For example: tune hyperparameters (sigma).

postprocess(times, rvs)[source]

Rescale covariances with sigma square estimate, (if specified) smooth the estimate, return ODESolution.

solve(steprule)

Solve an IVP.

Parameters

steprule (StepRule) – Step-size selection rule, e.g. constant steps or adaptive steps.

step(t, t_new, current_rv)[source]

Gaussian IVP filter step as nonlinear Kalman filtering with zero data.