# Matern¶

class probnum.diffeq.Matern(ordint, spatialdim, lengthscale, diffconst, precond_step=1.0)[source]

Bases: probnum.diffeq.odefiltsmooth.prior.ODEPrior

Matern(q) prior –> Matern process with reg. q+0.5 and hence, with matrix size q+1

F = I_d otimes F L = I_d otimes L = I_d otimes diffconst*(0, …, 1) Q = I_d

Attributes Summary

 diffusionmatrix Evaluates Q. dispersionmatrix driftmatrix force inverse_preconditioner Convenience property to return the readily-computed inverse preconditioner without having to remember abbreviations. ndim Spatial dimension (utility attribute). preconditioner Convenience property to return the readily-computed preconditioner without having to remember abbreviations.

Methods Summary

 chapmankolmogorov(start, stop, step, …) Solves Chapman-Kolmogorov equation from start to stop via step. 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) precond2nordsieck(step) Computes preconditioner inspired by Nordsieck. proj2coord(coord) Projection matrix to $$i$$-th coordinates. sample(start, stop, step, initstate, **kwargs) Samples from initstate at start to stop with stepsize step.

Attributes Documentation

diffusionmatrix

Evaluates Q.

dispersionmatrix
driftmatrix
force
inverse_preconditioner

Convenience property to return the readily-computed inverse preconditioner without having to remember abbreviations.

Returns: Inverse preconditioner matrix $$P^{-1}$$ np.ndarray, shape=(d(q+1), d(q+1))
ndim

Spatial dimension (utility attribute).

preconditioner

Convenience property to return the readily-computed preconditioner without having to remember abbreviations.

Returns: Preconditioner matrix $$P$$ np.ndarray, shape=(d(q+1), d(q+1))

Methods Documentation

chapmankolmogorov(start, stop, step, randvar, **kwargs)

Solves Chapman-Kolmogorov equation from start to stop via step.

For LTISDEs, there is a closed form solutions to the ODE for mean and kernels (see super().chapmankolmogorov(…)). We exploit this for [(stop - start)/step] steps.

References

Eq. (8) in http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.390.380&rep=rep1&type=pdf and Eq. 6.41 and Eq. 6.42 in Applied SDEs.

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)

precond2nordsieck(step)

Computes preconditioner inspired by Nordsieck.

Computes the matrix $$P$$ given by

$P = I_d \otimes diag (1, h, h^2, ..., h^q)$

as well as its inverse $$P^{-1}$$.

Parameters: step (float) – Step size $$h$$ used for preconditioning. If $$h$$ is so small that $$h^q! < 10^{-15}$$, it is being set to $$h = (\cdot 10^{-15})^{1/q}$$. precond (np.ndarray, shape=(d(q+1), d(q+1))) – Preconditioner matrix $$P$$. invprecond (np.ndarray, shape=(d(q+1), d(q+1))) – Inverse preconditioner matrix $$P^{-1}$$.
proj2coord(coord)

Projection matrix to $$i$$-th coordinates.

Computes the matrix

$H_i = \left[ I_d \otimes e_i \right] P^{-1},$

where $$e_i$$ is the $$i$$-th unit vector, that projects to the $$i$$-th coordinate of a vector. If the ODE is multidimensional, it projects to each of the $$i$$-th coordinates of each ODE dimension.

Parameters: coord (int) – Coordinate index $$i$$ which to project to. Expected to be in range $$0 \leq i \leq q + 1$$. Projection matrix $$H_i$$. np.ndarray, shape=(d, d*(q+1))
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!