DiscreteLTIGaussian

class probnum.filtsmooth.DiscreteLTIGaussian(dynamat, forcevec, diffmat)[source]

Bases: probnum.filtsmooth.statespace.DiscreteLinearGaussian

Discrete, linear, time-invariant Gaussian transition models of the form.

\[x_{i+1} \sim \mathcal{N}(G x_i + v, S)\]

for some dynamics matrix \(G\), force vector \(v\), and diffusion matrix \(S\).

Parameters
  • dynamat (np.ndarray) – Dynamics matrix \(G\).

  • forcevec (np.ndarray) – Force vector \(v\).

  • diffmat (np.ndarray) – Diffusion matrix \(S\).

Raises

TypeError – If dynamat, forcevec and diffmat have incompatible shapes.

See also

DiscreteModel, DiscreteGaussianLinearModel

Attributes Summary

dimension

Dimension of the transition model.

Methods Summary

__call__(arr_or_rv[, start, stop])

Transition a random variable or a realization of one.

diffusionmatrix(time, **kwargs)

Compute diffusion matrix \(S=S(t)\) at time \(t\).

dynamics(time, state, **kwargs)

Compute dynamics \(g=g(t, x)\) at time \(t\) and state \(x\).

dynamicsmatrix(time, **kwargs)

Compute dynamics matrix \(G=G(t)\) at time \(t\).

forcevector(time, **kwargs)

Compute force vector \(v=v(t)\) at time \(t\).

jacobian(time, state, **kwargs)

Compute diffusion matrix \(S=S(t)\) at time \(t\).

transition_realization(real, start[, stop])

Transition a realization of a random variable from time \(t\) to time \(t+\Delta t\).

transition_rv(rv, start[, stop])

Transition a random variable from time \(t\) to time \(t+\Delta t\).

Attributes Documentation

dimension

Methods Documentation

__call__(arr_or_rv, start=None, stop=None, **kwargs)

Transition a random variable or a realization of one.

The input is either interpreted as a random variable or as a realization. Accordingly, the respective methods are called: transition_realization() or transition_rv().

Return type

(‘RandomVariable’, typing.Dict)

diffusionmatrix(time, **kwargs)

Compute diffusion matrix \(S=S(t)\) at time \(t\).

Parameters

time (float) – Time \(t\).

Returns

Diffusion matrix \(S=S(t)\).

Return type

np.ndarray

dynamics(time, state, **kwargs)

Compute dynamics \(g=g(t, x)\) at time \(t\) and state \(x\).

Parameters
  • time (float) – Time \(t\).

  • state (array_like) – State \(x\). For instance, realization of a random variable.

Returns

Evaluation of \(g=g(t, x)\).

Return type

np.ndarray

dynamicsmatrix(time, **kwargs)

Compute dynamics matrix \(G=G(t)\) at time \(t\). The output is equivalent to jacobian().

Parameters

time (float) – Time \(t\).

Returns

Evaluation of the dynamics matrix \(G=G(t)\).

Return type

np.ndarray

forcevector(time, **kwargs)

Compute force vector \(v=v(t)\) at time \(t\).

Parameters

time (float) – Time \(t\).

Returns

Evaluation of the force \(v=v(t)\).

Return type

np.ndarray

jacobian(time, state, **kwargs)

Compute diffusion matrix \(S=S(t)\) at time \(t\).

Parameters
  • time (float) – Time \(t\).

  • state (array_like) – State \(x\). For instance, realization of a random variable.

Raises

NotImplementedError – If the Jacobian is not implemented. This is the case if jacfct() is not specified at initialization.

Returns

Evaluation of the Jacobian \(J g=Jg(t, x)\).

Return type

np.ndarray

transition_realization(real, start, stop=None, **kwargs)

Transition a realization of a random variable from time \(t\) to time \(t+\Delta t\).

For random variable \(x_t\), it returns the random variable defined by

\[x_{t + \Delta t} \sim p(x_{t + \Delta t} | x_t = r) .\]

This is different to transition_rv() which computes the parametrization of \(x_{t + \Delta t}\) based on the parametrization of \(x_t\).

Nb: Think of transition as a verb, i.e. this method “transitions” a realization of a random variable.

Parameters
  • real – Realization of the random variable.

  • start – Starting point \(t\).

  • stop – End point \(t + \Delta t\).

Returns

  • RandomVariable – Random variable, describing the state at time \(t + \Delta t\) based on realization at time \(t\).

  • dict – Additional information in form of a dictionary, for instance the cross-covariance in the prediction step, access to which is useful in smoothing.

See also

transition_rv()

Apply transition to a random variable.

transition_rv(rv, start, stop=None, **kwargs)

Transition a random variable from time \(t\) to time \(t+\Delta t\).

For random variable \(x_t\), it returns the random variable defined by

\[x_{t + \Delta t} \sim p(x_{t + \Delta t} | x_t) .\]

This returns a random variable where the parametrization depends on the paramtrization of \(x_t\). This is different to transition_rv() which computes the parametrization of \(x_{t + \Delta t}\) based on a realization of \(x_t\).

Nb: Think of transition as a verb, i.e. this method “transitions” a random variable.

Parameters
  • rv – Realization of the random variable.

  • start – Starting point \(t\).

  • stop – End point \(t + \Delta t\).

Returns

  • RandomVariable – Random variable, describing the state at time \(t + \Delta t\) based on realization at time \(t\).

  • dict – Additional information in form of a dictionary, for instance the cross-covariance in the prediction step, access to which is useful in smoothing.

See also

transition_realization()

Apply transition to a realization of a random variable.