LTI_continuous¶
Build a continuous-time linear time-invariant (LTI) DynamicalModel.
The state evolves according to the SDE and observation model
Here, \(L\) is a diffusion coefficient (not a covariance) with shape \((d_x, d_w)\). It multiplies a \(d_w\)-dimensional Brownian motion \(W_t\) whose increments have identity covariance: \(dW_t \sim \mathcal{N}(0, I_{d_w} \, dt)\). The Brownian motion dimension \(d_w\) is determined by the second dimension of \(L\). Under this convention, the infinitesimal state covariance contributed by the noise term is \(L L^\top \, dt\).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
A
|
Array
|
Drift matrix with shape \((d_x, d_x)\). |
required |
L
|
Array
|
Diffusion coefficient with shape \((d_x, d_w)\). |
required |
H
|
Array
|
Observation matrix with shape \((d_y, d_x)\). |
required |
R
|
Array
|
Observation-noise covariance with shape \((d_y, d_y)\). |
required |
B
|
Array | None
|
Optional control matrix in the drift with shape
\((d_x, d_u)\). If None, no control term is used and |
None
|
b
|
Array | None
|
Optional additive drift bias with shape \((d_x,)\). |
None
|
D
|
Array | None
|
Optional control matrix in the observation model with shape \((d_y, d_u)\). |
None
|
d
|
Array | None
|
Optional additive observation bias with shape \((d_y,)\). |
None
|
initial_mean
|
Array | None
|
Optional initial-state mean \(m_0\) with shape \((d_x,)\). Defaults to zeros. |
None
|
initial_cov
|
Array | None
|
Optional initial-state covariance \(C_0\) with shape \((d_x, d_x)\). Defaults to identity. |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
DynamicalModel |
DynamicalModel
|
A continuous-time LTI state-space model. |
Structured inference
This factory is a convenience wrapper: you can construct an equivalent
Kalman-filter-friendly model by manually wiring DynamicalModel with an
affine drift (AffineDrift), a constant diffusion coefficient, and
LinearGaussianObservation (emissions), plus a Gaussian initial condition.
Using these structured classes makes the linear/Gaussian structure explicit
so dynestyx can dispatch to fast Kalman-style filtering in continuous time;
see Filters and ContinuousTimeKFConfig in
FilterConfigs.
Without this exploitable structure, parameter inference that marginalizes
latent trajectories generally falls back to particle filters
(ContinuousTimeDPFConfig / particle-style methods), which are typically slower.
Identifiability and canonical forms
With partial observations, standard LTI parameterizations can be non-identifiable, leading to multi-modal or poorly behaved posteriors. Canonical/minimal parameterizations are often recommended for Bayesian system identification in these settings; see Canonical Bayesian Linear System Identification.
Example¶
Continuous-time LTI model factory
import jax.numpy as jnp
from dynestyx import LTI_continuous
model = LTI_continuous(
A=jnp.array([[0.0, 1.0], [-1.0, -0.2]]),
L=0.1 * jnp.eye(2),
H=jnp.array([[1.0, 0.0]]),
R=0.05 * jnp.eye(1),
)