smooth_rts

probnum.filtsmooth.smooth_rts(observations, locations, F, L, H, R, m0, C0, prior_model='continuous')[source]

Estimate a trajectory with a Rauch-Tung-Striebel smoother.

A Rauch-Tung-Striebel smoother estimates the unknown trajectory \(X\) from a set of observations Y. There is a continuous-discrete and a discrete-discrete version (describing whether the prior model and measurement model are continuous/discrete).

In a continuous-discrete model, the prior distribution is described by the SDE

\[\text{d}X(t) = F X(t) \text{d}t + L \text{d}W(t)\]

driven by Wiener process \(W\) and subject to initial condition

\[X(t_0) \sim N(m_0, C_0).\]

By default, \(t_0\) is set to the location of the first observation.

In a discrete-discrete model, the prior distribution is described by the transition

\[X_{n+1} \,|\, X_n \sim N(F X_n, L)\]

subject to the same initial condition.

In both cases, the measurement model is (write \(X(t_n)=X_n\) in the continuous case)

\[Y_n \,|\, X_n \sim N(H X_n, R)\]

and the Rauch-Tung-Striebel smoother estimates \(X\) given \(Y_n=y_n\), \(Y=[y_1, ..., y_N]\).

Parameters
Raises

ValueError – If prior_model is neither discrete nor continuous.

Returns

Smoothing distribution as returned by the Rauch-Tung-Striebel smoother.

Return type

gaussian.SmoothingPosterior