DiscreteGaussianLTIModel¶
-
class
probnum.filtsmooth.DiscreteGaussianLTIModel(dynamat, forcevec, diffmat)[source]¶ Bases:
probnum.filtsmooth.DiscreteGaussianLinearModelDiscrete, 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
Attributes Summary
dimensionDimension 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()ortransition_rv().
-
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 ifjacfct()is not specified at initialization.Returns: Evaluation of the Jacobian \(J g=Jg(t, x)\).
Return type: 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\).
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=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\).
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.