TruncatedPeriodic#

class gpjax.state_space.TruncatedPeriodic(*, active_dims=None, lengthscale=1.0, variance=1.0, period=1.0, truncation_order=6, n_dims=None, compute_engine=None)[source]#

Bases: StationaryKernel

Truncated-Fourier approximation of the periodic kernel.

See Solin & Särkkä (2014). The kernel is the truncated cosine series

k(τ) = σ² · (Ĩ_0(c) + 2 Σ_{k=1}^{K} Ĩ_k(c) cos(2π k τ / period))

where Ĩ_k(c) = e^{-c} I_k(c) is the scaled modified Bessel function and c = 1/(4ℓ²). Acceptance of a 1-D temporal input is enforced by _validate_temporal_kernel at to_sde time, not here.

Example

>>> from gpjax.state_space import TruncatedPeriodic
>>> kernel = TruncatedPeriodic(
...     lengthscale=1.0, variance=1.0, period=1.0, truncation_order=6,
... )
>>> kernel.truncation_order
6
Parameters: