LTI_discrete¶
Build a discrete-time linear time-invariant (LTI) DynamicalModel.
The model has transition and observation distributions
This factory composes LinearGaussianStateEvolution and
LinearGaussianObservation into a core DynamicalModel.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
A
|
Array
|
State transition matrix with shape \((d_x, d_x)\). |
required |
Q
|
Array
|
Process-noise covariance with shape \((d_x, d_x)\). |
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 transition model
with shape \((d_x, d_u)\). If None, no control term is used and
|
None
|
b
|
Array | None
|
Optional additive transition 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 discrete-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
LinearGaussianStateEvolution (state transition) 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 filtering; see
Filters and KFConfig in
FilterConfigs.
Without this exploitable structure, parameter inference that marginalizes
latent trajectories generally falls back to particle filters (PFConfig),
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¶
Discrete-time LTI model factory
import jax.numpy as jnp
from dynestyx import LTI_discrete
model = LTI_discrete(
A=jnp.array([[1.0, 0.1], [0.0, 1.0]]),
Q=0.01 * jnp.eye(2),
H=jnp.array([[1.0, 0.0]]),
R=0.05 * jnp.eye(1),
)