LinearSDEModel

class probnum.filtsmooth.LinearSDEModel(driftmatrixfct, forcfct, dispmatrixfct, diffmatrix)

Bases: probnum.filtsmooth.ContinuousModel

Linear time-continuous Markov models given by the solution of the stochastic differential equation \(dx = [F(t) x(t) + u(t)] dt + L(t) dB(t)\).

Parameters:
  • driftmatrixfct (callable, signature=(t, **kwargs)) – This is F = F(t). The evaluations of this function are called the drift(matrix) of the SDE. Returns np.ndarray with shape=(n, n)
  • forcfct (callable, signature=(t, **kwargs)) – This is u = u(t). Evaluations of this function are called the force(vector) of the SDE. Returns np.ndarray with shape=(n,)
  • dispmatrixfct (callable, signature=(t, **kwargs)) – This is L = L(t). Evaluations of this function are called the dispersion(matrix) of the SDE. Returns np.ndarray with shape=(n, s)
  • diffmatrix (np.ndarray, shape=(s, s)) – This is the diffusion matrix Q of the Brownian motion. It is always a square matrix and the size of this matrix matches the number of columns of the dispersionmatrix.

Notes

If initial conditions are Gaussian, the solution is a Gauss-Markov process. We assume Gaussianity for chapmankolmogorov().

Attributes Summary

diffusionmatrix Evaluates Q.
ndim Spatial dimension (utility attribute).

Methods Summary

chapmankolmogorov(start, stop, step, …) Solves differential equations for mean and kernels of the SDE solution (Eq.
dispersion(time, state, **kwargs) Evaluates l(t, x(t)) = L(t).
drift(time, state, **kwargs) Evaluates f(t, x(t)) = F(t) x(t) + u(t).
jacobian(time, state, **kwargs) maps t -> F(t)
sample(start, stop, step, initstate, **kwargs) Samples from initstate at start to stop with stepsize step.

Attributes Documentation

diffusionmatrix

Evaluates Q.

ndim

Spatial dimension (utility attribute).

Methods Documentation

chapmankolmogorov(start, stop, step, randvar, **kwargs)[source]

Solves differential equations for mean and kernels of the SDE solution (Eq. 5.50 and 5.51 or Eq. 10.73 in Applied SDEs).

By default, we assume that randvar is Gaussian.

dispersion(time, state, **kwargs)[source]

Evaluates l(t, x(t)) = L(t).

drift(time, state, **kwargs)[source]

Evaluates f(t, x(t)) = F(t) x(t) + u(t).

jacobian(time, state, **kwargs)[source]

maps t -> F(t)

sample(start, stop, step, initstate, **kwargs)

Samples from initstate at start to stop with stepsize step.

Start, stop and step lead to a np.arange-like interface. Returns a single element at the end of the time, not the entire array!