# DiscreteGaussianLTIModel¶

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

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$$. TypeError – If dynamat, forcevec and diffmat have incompatible shapes.

Attributes Summary

 dimension Dimension of the transition model.

Methods Summary

 __call__(arr_or_rv, RandomVariable], start, …) 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

Dimension of the transition model.

Methods Documentation

__call__(arr_or_rv: Union[numpy.ndarray, RandomVariable], start: float = None, stop: float = None, **kwargs) -> ('RandomVariable', typing.Dict)

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().

diffusionmatrix(time, **kwargs)

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

Parameters: time (float) – Time $$t$$. Diffusion matrix $$S=S(t)$$. 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. Evaluation of $$g=g(t, x)$$. 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$$. Evaluation of the dynamics matrix $$G=G(t)$$. np.ndarray
forcevector(time, **kwargs)

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

Parameters: time (float) – Time $$t$$. Evaluation of the force $$v=v(t)$$. 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. NotImplementedError – If the Jacobian is not implemented. This is the case if jacfct() is not specified at initialization. Evaluation of the Jacobian $$J g=Jg(t, x)$$. np.ndarray
transition_realization(real, start=None, stop=None)[source]

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$$. 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.

transition_rv()
Apply transition to a random variable.
transition_rv(rv, start=None, stop=None, **kwargs)[source]

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$$. 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.

transition_realization()