KalmanTV
Linear
Time-varying Kalman filtering and smoothing algorithms.
The Gaussian state space model underlying the algorithms is
where \(\epsilon_n \stackrel{\text{iid}}{\sim} \operatorname{Normal}(0, I_p)\) and independently \(\eta_n \stackrel{\text{iid}}{\sim} \operatorname{Normal}(0, I_q)\). At each time \(n\), only \(y_n\) is observed. The Kalman filtering and smoothing algorithms efficiently calculate quantities of the form \(\theta_{m|n} = (\mu_{m|n}, \Sigma_{m|n})\), where
for different combinations of \(m\) and \(n\).
- rodeo.kalmantv.standard.filter(mean_state_past, var_state_past, mean_state, wgt_state, var_state, x_meas, mean_meas, wgt_meas, var_meas, *args, **kwargs)[source]
Performs one step of the Kalman filter.
Combines the
predict()andupdate()steps at time \(t = n\).- Parameters:
mean_state_past (ndarray(n_state)) – State mean at time \(t = n-1\) given observations at times \(t = 0, \dots, n-1\).
var_state_past (ndarray(n_state, n_state)) – State variance at time \(t = n-1\) given observations at times \(t = 0, \dots, n-1\).
mean_state (ndarray(n_state)) – State equation offset at time \(t = n\).
wgt_state (ndarray(n_state, n_state)) – State transition matrix at time \(t = n\).
var_state (ndarray(n_state, n_state)) – State variance matrix at time \(t = n\).
x_meas (ndarray(n_state)) – Interrogated measure vector from \(x_{\text{state}}\) at time \(t = n\).
mean_meas (ndarray(n_state)) – Transition offsets defining the measure prior at time \(t = n\).
wgt_meas (ndarray(n_meas, n_state)) – Transition matrix defining the measure prior at time \(t = n\).
var_meas (ndarray(n_meas, n_meas)) – Variance matrix defining the measure prior at time \(t = n\).
args (Optional[pytree]) – Additional positional arguments for Kalman functions.
kwargs (Optional[pytree]) – Additional keyword arguments for Kalman functions.
- Returns:
mean_state_pred (ndarray(n_state)): State mean at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
var_state_pred (ndarray(n_state, n_state)): State variance at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
mean_state_filt (ndarray(n_state)): State mean at time \(t = n\) given observations at times \(t = 0, \dots, n\).
var_state_filt (ndarray(n_state, n_state)): State variance at time \(t = n\) given observations at times \(t = 0, \dots, n\).
- Return type:
(tuple)
- rodeo.kalmantv.standard.forecast(mean_state_pred, var_state_pred, mean_meas, wgt_meas, var_meas, *args, **kwargs)[source]
Forecasts the mean and variance of the measurement at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
- Parameters:
mean_state_pred (ndarray(n_state)) – State mean at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
var_state_pred (ndarray(n_state, n_state)) – State variance at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
mean_meas (ndarray(n_meas)) – Measurement equation offset at time \(t = n\).
wgt_meas (ndarray(n_meas, n_state)) – Measurement transition matrix at time \(t = n\).
var_meas (ndarray(n_meas, n_meas)) – State variance matrix at time \(t = n\).
args (Optional[pytree]) – Additional positional arguments for Kalman functions.
kwargs (Optional[pytree]) – Additional keyword arguments for Kalman functions.
- Returns:
mean_fore (ndarray(n_meas)): Forecast mean at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
var_fore (ndarray(n_meas, n_meas)): Forecast variance at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
- Return type:
(tuple)
- rodeo.kalmantv.standard.predict(mean_state_past, var_state_past, mean_state, wgt_state, var_state, *args, **kwargs)[source]
Performs one prediction step of the Kalman filter.
Calculates the mean and variance of \(p(X_n | Z_{0:n-1})\) from \(p(X_{n-1} | Z_{0:n-1})\).
- Parameters:
mean_state_past (ndarray(n_state)) – State mean at time \(t = n-1\) given observations at times \(t = 0, \dots, n-1\).
var_state_past (ndarray(n_state, n_state)) – State variance at time \(t = n-1\) given observations at times \(t = 0, \dots, n-1\).
mean_state (ndarray(n_state)) – State equation offset at time \(t = n\).
wgt_state (ndarray(n_state, n_state)) – State transition matrix at time \(t = n\).
var_state (ndarray(n_state, n_state)) – State variance matrix at time \(t = n\).
args (Optional[pytree]) – Additional positional arguments for Kalman functions.
kwargs (Optional[pytree]) – Additional keyword arguments for Kalman functions.
- Returns:
mean_state_pred (ndarray(n_state)): State mean at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
var_state_pred (ndarray(n_state, n_state)): State variance at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
- Return type:
(tuple)
- rodeo.kalmantv.standard.smooth(x_state_next, mean_state_next, var_state_next, mean_state_filt, var_state_filt, mean_state_pred, var_state_pred, wgt_state, *args, **kwargs)[source]
Performs one step of both Kalman mean/variance and sampling smoothers.
- Parameters:
x_state_next (ndarray(n_state)) – Simulated state at time \(t = n+1\) given observations at times \(t = 0, \dots, N\).
mean_state_next (ndarray(n_state)) – State mean at time \(t = n+1\) given observations at times \(t = 0, \dots, N\).
var_state_next (ndarray(n_state, n_state)) – State variance at time \(t = n+1\) given observations at times \(t = 0, \dots, N\).
mean_state_filt (ndarray(n_state)) – State mean at time \(t = n\) given observations at times \(t = 0, \dots, n\).
var_state_filt (ndarray(n_state, n_state)) – State variance at time \(t = n\) given observations at times \(t = 0, \dots, n\).
mean_state_pred (ndarray(n_state)) – State mean at time \(t = n+1\) given observations at times \(t = 0, \dots, n\).
var_state_pred (ndarray(n_state, n_state)) – State variance at time \(t = n+1\) given observations at times \(t = 0, \dots, n\).
wgt_state (ndarray(n_state, n_state)) – State transition matrix at time \(t = n+1\).
args (Optional[pytree]) – Additional positional arguments for Kalman functions.
kwargs (Optional[pytree]) – Additional keyword arguments for Kalman functions.
- Returns:
mean_state_sim (ndarray(n_state)): Mean for the sample solution at time \(t = n\) given observations at times \(t = 0, \dots, N\).
var_state_sim (ndarray(n_state)): Variance for the sample solution at time \(t = n\) given observations at times \(t = 0, \dots, N\).
mean_state_smooth (ndarray(n_state)): State mean at time \(t = n\) given observations at times \(t = 0, \dots, N\).
var_state_smooth (ndarray(n_state, n_state)): State variance at time \(t = n\) given observations at times \(t = 0, \dots, N\).
- Return type:
(tuple)
- rodeo.kalmantv.standard.smooth_cond(mean_state_filt, var_state_filt, mean_state_pred, var_state_pred, wgt_state, *args, **kwargs)[source]
Performs one step of the Kalman sampling smoother conditional.
Finds \(A_n\), \(b_n\), and \(V_n\) such that \(X_n \sim \mathcal{N}(A_n X_{n+1} + b_n, V_n)\). This is similar to the Kalman sampling algorithm but without the explicit sample.
- Parameters:
mean_state_filt (ndarray(n_state)) – State mean at time \(t = n\) given observations at times \(t = 0, \dots, n\).
var_state_filt (ndarray(n_state, n_state)) – State variance at time \(t = n\) given observations at times \(t = 0, \dots, n\).
mean_state_pred (ndarray(n_state)) – State mean at time \(t = n+1\) given observations at times \(t = 0, \dots, n\).
var_state_pred (ndarray(n_state, n_state)) – State variance at time \(t = n+1\) given observations at times \(t = 0, \dots, n\).
wgt_state (ndarray(n_state, n_state)) – State transition matrix at time \(t = n+1\).
args (Optional[pytree]) – Additional positional arguments for Kalman functions.
kwargs (Optional[pytree]) – Additional keyword arguments for Kalman functions.
- Returns:
wgt_state_cond (ndarray(n_state, n_state)): Transition of smooth conditional at time \(t = n\) given observations at times \(t = 0, \dots, N\).
mean_state_cond (ndarray(n_state)): Offset of smooth conditional at time \(t = n\) given observations at times \(t = 0, \dots, N\).
var_state_cond (ndarray(n_state, n_state)): Variance of smooth conditional at time \(t = n\) given observations at times \(t = 0, \dots, N\).
- Return type:
(tuple)
- rodeo.kalmantv.standard.smooth_mv(mean_state_next, var_state_next, mean_state_filt, var_state_filt, mean_state_pred, var_state_pred, wgt_state, *args, **kwargs)[source]
Performs one step of the Kalman mean/variance smoother.
Calculates the mean and variance of \(p(X_n | Z_{0:N})\).
- Parameters:
mean_state_next (ndarray(n_state)) – State mean at time \(t = n+1\) given observations at times \(t = 0, \dots, N\).
var_state_next (ndarray(n_state, n_state)) – State variance at time \(t = n+1\) given observations at times \(t = 0, \dots, N\).
mean_state_filt (ndarray(n_state)) – State mean at time \(t = n\) given observations at times \(t = 0, \dots, n\).
var_state_filt (ndarray(n_state, n_state)) – State variance at time \(t = n\) given observations at times \(t = 0, \dots, n\).
mean_state_pred (ndarray(n_state)) – State mean at time \(t = n+1\) given observations at times \(t = 0, \dots, n\).
var_state_pred (ndarray(n_state, n_state)) – State variance at time \(t = n+1\) given observations at times \(t = 0, \dots, n\).
wgt_state (ndarray(n_state, n_state)) – State transition matrix at time \(t = n+1\).
args (Optional[pytree]) – Additional positional arguments for Kalman functions.
kwargs (Optional[pytree]) – Additional keyword arguments for Kalman functions.
- Returns:
mean_state_smooth (ndarray(n_state)): State mean at time \(t = n\) given observations at times \(t = 0, \dots, N\).
var_state_smooth (ndarray(n_state, n_state)): State variance at time \(t = n\) given observations at times \(t = 0, \dots, N\).
- Return type:
(tuple)
- rodeo.kalmantv.standard.smooth_sim(x_state_next, mean_state_filt, var_state_filt, mean_state_pred, var_state_pred, wgt_state, *args, **kwargs)[source]
Performs one step of the Kalman sampling smoother.
Calculates the mean and variance of \(p(X_n | X_{n+1}, Z_{0:N})\).
- Parameters:
x_state_next (ndarray(n_state)) – Simulated state at time \(t = n+1\) given observations at times \(t = 0, \dots, N\).
mean_state_filt (ndarray(n_state)) – State mean at time \(t = n\) given observations at times \(t = 0, \dots, n\).
var_state_filt (ndarray(n_state, n_state)) – State variance at time \(t = n\) given observations at times \(t = 0, \dots, n\).
mean_state_pred (ndarray(n_state)) – State mean at time \(t = n+1\) given observations at times \(t = 0, \dots, n\).
var_state_pred (ndarray(n_state, n_state)) – State variance at time \(t = n+1\) given observations at times \(t = 0, \dots, n\).
wgt_state (ndarray(n_state, n_state)) – State transition matrix at time \(t = n+1\).
args (Optional[pytree]) – Additional positional arguments for Kalman functions.
kwargs (Optional[pytree]) – Additional keyword arguments for Kalman functions.
- Returns:
mean_state_sim (ndarray(n_state)): Mean for the sample solution at time \(t = n\) given observations at times \(t = 0, \dots, N\).
var_state_sim (ndarray(n_state)): Variance for the sample solution at time \(t = n\) given observations at times \(t = 0, \dots, N\).
- Return type:
(tuple)
- rodeo.kalmantv.standard.update(mean_state_pred, var_state_pred, x_meas, mean_meas, wgt_meas, var_meas, *args, **kwargs)[source]
Performs one update step of the Kalman filter.
Calculates the mean and variance of \(p(X_n | Z_{0:n})\) from \(p(X_n | Z_{0:n-1})\).
- Parameters:
mean_state_pred (ndarray(n_state)) – State mean at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
var_state_pred (ndarray(n_state, n_state)) – State variance at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
x_meas (ndarray(n_meas)) – Interrogated measure vector from \(x_{\text{state}}\) at time \(t = n\).
mean_meas (ndarray(n_meas)) – Measurement equation offset at time \(t = n\).
wgt_meas (ndarray(n_meas, n_state)) – Measurement transition matrix at time \(t = n\).
var_meas (ndarray(n_meas, n_meas)) – Measurement variance matrix at time \(t = n\).
args (Optional[pytree]) – Additional positional arguments for Kalman functions.
kwargs (Optional[pytree]) – Additional keyword arguments for Kalman functions.
- Returns:
mean_state_filt (ndarray(n_state)): State mean at time \(t = n\) given observations at times \(t = 0, \dots, n\).
var_state_filt (ndarray(n_state, n_state)): State variance at time \(t = n\) given observations at times \(t = 0, \dots, n\).
- Return type:
(tuple)
Square Root
Time-varying square-root Kalman filtering and smoothing algorithms.
The Gaussian state space model underlying the algorithms is
where \(\epsilon_n \stackrel{\text{iid}}{\sim} \operatorname{Normal}(0, I_p)\) and independently \(\eta_n \stackrel{\text{iid}}{\sim} \operatorname{Normal}(0, I_q)\). At each time \(n\), only \(y_n\) is observed. The suqare-root Kalman filtering and smoothing algorithms efficiently calculate quantities of the form \(\theta_{m|n} = (\mu_{m|n}, \Gamma_{m|n})\), where
for different combinations of \(m\) and \(n\).
- rodeo.kalmantv.square_root.filter(mean_state_past, var_state_past, mean_state, wgt_state, var_state, x_meas, mean_meas, wgt_meas, var_meas, *args, **kwargs)[source]
Performs one step of the square-root Kalman filter.
Combines the
predict()andupdate()steps at time \(t = n\).- Parameters:
mean_state_past (ndarray(n_state)) – State mean at time \(t = n-1\) given observations at times \(t = 0, \dots, n-1\).
var_state_past (ndarray(n_state, n_state)) – State square-root variance at time \(t = n-1\) given observations at times \(t = 0, \dots, n-1\).
mean_state (ndarray(n_state)) – State equation offset at time \(t = n\).
wgt_state (ndarray(n_state, n_state)) – State transition matrix at time \(t = n\).
var_state (ndarray(n_state, n_state)) – State square-root variance matrix at time \(t = n\).
x_meas (ndarray(n_state)) – Interrogated measure vector from \(x_{\text{state}}\) at time \(t = n\).
mean_meas (ndarray(n_state)) – Transition offsets defining the measure prior at time \(t = n\).
wgt_meas (ndarray(n_meas, n_state)) – Transition matrix defining the measure prior at time \(t = n\).
var_meas (ndarray(n_meas, n_meas)) – Measurement square-root variance matrix at time \(t = n\).
args (Optional[pytree]) – Additional positional arguments for Kalman functions.
kwargs (Optional[pytree]) – Additional keyword arguments for Kalman functions.
- Returns:
mean_state_pred (ndarray(n_state)): State mean at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
var_state_pred (ndarray(n_state, n_state)): State square-root variance at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
mean_state_filt (ndarray(n_state)): State mean at time \(t = n\) given observations at times \(t = 0, \dots, n\).
var_state_filt (ndarray(n_state, n_state)): State square-root variance at time \(t = n\) given observations at times \(t = 0, \dots, n\).
- Return type:
(tuple)
- rodeo.kalmantv.square_root.forecast(mean_state_pred, var_state_pred, mean_meas, wgt_meas, var_meas, *args, **kwargs)[source]
Forecasts the mean and variance of the measurement at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
- Parameters:
mean_state_pred (ndarray(n_state)) – State mean at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
var_state_pred (ndarray(n_state, n_state)) – State square-root variance at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
mean_meas (ndarray(n_meas)) – Measurement equation offset at time \(t = n\).
wgt_meas (ndarray(n_meas, n_state)) – Measurement transition matrix at time \(t = n\).
var_meas (ndarray(n_meas, n_meas)) – State square-root variance matrix at time \(t = n\).
args (Optional[pytree]) – Additional positional arguments for Kalman functions.
kwargs (Optional[pytree]) – Additional keyword arguments for Kalman functions.
- Returns:
mean_fore (ndarray(n_meas)): Forecast mean at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
var_fore (ndarray(n_meas, n_meas)): Forecast variance at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
- Return type:
(tuple)
- rodeo.kalmantv.square_root.predict(mean_state_past, var_state_past, mean_state, wgt_state, var_state, *args, **kwargs)[source]
Performs one prediction step of the square-root Kalman filter.
Calculates the mean and square-root variance of \(p(X_n | Z_{0:n-1})\) from \(p(X_{n-1} | Z_{0:n-1})\).
- Parameters:
mean_state_past (ndarray(n_state)) – State mean at time \(t = n-1\) given observations at times \(t = 0, \dots, n-1\).
var_state_past (ndarray(n_state, n_state)) – State square-root variance at time \(t = n-1\) given observations at times \(t = 0, \dots, n-1\).
mean_state (ndarray(n_state)) – State equation offset at time \(t = n\).
wgt_state (ndarray(n_state, n_state)) – State transition matrix at time \(t = n\).
var_state (ndarray(n_state, n_state)) – State square-root variance matrix at time \(t = n\).
args (Optional[pytree]) – Additional positional arguments for Kalman functions.
kwargs (Optional[pytree]) – Additional keyword arguments for Kalman functions.
- Returns:
mean_state_pred (ndarray(n_state)): State mean at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
var_state_pred (ndarray(n_state, n_state)): State square-root variance at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
- Return type:
(tuple)
- rodeo.kalmantv.square_root.smooth(x_state_next, mean_state_next, var_state_next, mean_state_filt, var_state_filt, mean_state_pred, var_state_pred, wgt_state, var_state, *args, **kwargs)[source]
Performs one step of both square-root Kalman mean/variance and sampling smoothers.
- Parameters:
x_state_next (ndarray(n_state)) – Simulated state at time \(t = n+1\) given observations at times \(t = 0, \dots, N\).
mean_state_next (ndarray(n_state)) – State mean at time \(t = n+1\) given observations at times \(t = 0, \dots, N\).
var_state_next (ndarray(n_state, n_state)) – State square-root variance at time \(t = n+1\) given observations at times \(t = 0, \dots, N\).
mean_state_filt (ndarray(n_state)) – State mean at time \(t = n\) given observations at times \(t = 0, \dots, n\).
var_state_filt (ndarray(n_state, n_state)) – State square-root variance at time \(t = n\) given observations at times \(t = 0, \dots, n\).
mean_state_pred (ndarray(n_state)) – State mean at time \(t = n+1\) given observations at times \(t = 0, \dots, n\).
var_state_pred (ndarray(n_state, n_state)) – State square-root variance at time \(t = n+1\) given observations at times \(t = 0, \dots, n\).
wgt_state (ndarray(n_state, n_state)) – State transition matrix at time \(t = n+1\).
var_state (ndarray(n_state, n_state)) – State square-root variance matrix at time \(t = n\).
args (Optional[pytree]) – Additional positional arguments for Kalman functions.
kwargs (Optional[pytree]) – Additional keyword arguments for Kalman functions.
- Returns:
mean_state_sim (ndarray(n_state)): Mean for the sample solution at time \(t = n\) given observations at times \(t = 0, \dots, N\).
var_state_sim (ndarray(n_state)): Square-root variance for the sample solution at time \(t = n\) given observations at times \(t = 0, \dots, N\).
mean_state_smooth (ndarray(n_state)): State mean at time \(t = n\) given observations at times \(t = 0, \dots, N\).
var_state_smooth (ndarray(n_state, n_state)): State square-root variance at time \(t = n\) given observations at times \(t = 0, \dots, N\).
- Return type:
(tuple)
- rodeo.kalmantv.square_root.smooth_cond(mean_state_filt, var_state_filt, mean_state_pred, var_state_pred, wgt_state, var_state, *args, **kwargs)[source]
Performs one step of the square-root Kalman sampling smoother conditional.
Finds \(A_n\), \(b_n\), and \(C_n = \text{cholesky}(V_n)\) such that \(X_n \sim \mathcal{N}(A_n X_{n+1} + b_n, V_n)\). This is similar to the Kalman sampling algorithm but without the explicit sample.
- Parameters:
mean_state_filt (ndarray(n_state)) – State mean at time \(t = n\) given observations at times \(t = 0, \dots, n\).
var_state_filt (ndarray(n_state, n_state)) – State square-root variance at time \(t = n\) given observations at times \(t = 0, \dots, n\).
mean_state_pred (ndarray(n_state)) – State mean at time \(t = n+1\) given observations at times \(t = 0, \dots, n\).
var_state_pred (ndarray(n_state, n_state)) – State square-root variance at time \(t = n+1\) given observations at times \(t = 0, \dots, n\).
wgt_state (ndarray(n_state, n_state)) – State transition matrix at time \(t = n+1\).
var_state (ndarray(n_state, n_state)) – State square-root variance matrix at time \(t = n\).
args (Optional[pytree]) – Additional positional arguments for Kalman functions.
kwargs (Optional[pytree]) – Additional keyword arguments for Kalman functions.
- Returns:
wgt_state_cond (ndarray(n_state, n_state)): Transition of smooth conditional at time \(t = n\) given observations at times \(t = 0, \dots, N\).
mean_state_cond (ndarray(n_state)): Offset of smooth conditional at time \(t = n\) given observations at times \(t = 0, \dots, N\).
var_state_cond (ndarray(n_state, n_state)): Square-root variance of smooth conditional at time \(t = n\) given observations at times \(t = 0, \dots, N\).
- Return type:
(tuple)
- rodeo.kalmantv.square_root.smooth_mv(mean_state_next, var_state_next, mean_state_filt, var_state_filt, mean_state_pred, var_state_pred, wgt_state, var_state, *args, **kwargs)[source]
Performs one step of the square-root Kalman mean/variance smoother.
Calculates the mean and square-root variance of \(p(X_n | Z_{0:N})\).
- Parameters:
mean_state_next (ndarray(n_state)) – State mean at time \(t = n+1\) given observations at times \(t = 0, \dots, N\).
var_state_next (ndarray(n_state, n_state)) – State square-root variance at time \(t = n+1\) given observations at times \(t = 0, \dots, N\).
mean_state_filt (ndarray(n_state)) – State mean at time \(t = n\) given observations at times \(t = 0, \dots, n\).
var_state_filt (ndarray(n_state, n_state)) – State square-root variance at time \(t = n\) given observations at times \(t = 0, \dots, n\).
mean_state_pred (ndarray(n_state)) – State mean at time \(t = n+1\) given observations at times \(t = 0, \dots, n\).
var_state_pred (ndarray(n_state, n_state)) – State square-root variance at time \(t = n+1\) given observations at times \(t = 0, \dots, n\).
wgt_state (ndarray(n_state, n_state)) – State transition matrix at time \(t = n+1\).
var_state (ndarray(n_state, n_state)) – State square-root variance matrix at time \(t = n\).
args (Optional[pytree]) – Additional positional arguments for Kalman functions.
kwargs (Optional[pytree]) – Additional keyword arguments for Kalman functions.
- Returns:
mean_state_smooth (ndarray(n_state)): State mean at time \(t = n\) given observations at times \(t = 0, \dots, N\).
var_state_smooth (ndarray(n_state, n_state)): State square-root variance at time \(t = n\) given observations at times \(t = 0, \dots, N\).
- Return type:
(tuple)
- rodeo.kalmantv.square_root.smooth_sim(x_state_next, mean_state_filt, var_state_filt, mean_state_pred, var_state_pred, wgt_state, var_state, *args, **kwargs)[source]
Performs one step of the square-root Kalman sampling smoother.
Calculates the mean and square-root variance of \(p(X_n | X_{n+1}, Z_{0:N})\).
- Parameters:
x_state_next (ndarray(n_state)) – Simulated state at time \(t = n+1\) given observations at times \(t = 0, \dots, N\).
mean_state_filt (ndarray(n_state)) – State mean at time \(t = n\) given observations at times \(t = 0, \dots, n\).
var_state_filt (ndarray(n_state, n_state)) – State square-root variance at time \(t = n\) given observations at times \(t = 0, \dots, n\).
mean_state_pred (ndarray(n_state)) – State mean at time \(t = n+1\) given observations at times \(t = 0, \dots, n\).
var_state_pred (ndarray(n_state, n_state)) – State square-root variance at time \(t = n+1\) given observations at times \(t = 0, \dots, n\).
wgt_state (ndarray(n_state, n_state)) – State transition matrix at time \(t = n+1\).
var_state (ndarray(n_state, n_state)) – State square-root variance matrix at time \(t = n\).
args (Optional[pytree]) – Additional positional arguments for Kalman functions.
kwargs (Optional[pytree]) – Additional keyword arguments for Kalman functions.
- Returns:
mean_state_sim (ndarray(n_state)): Mean for the sample solution at time \(t = n\) given observations at times \(t = 0, \dots, N\).
var_state_sim (ndarray(n_state)): Square-root variance for the sample solution at time \(t = n\) given observations at times \(t = 0, \dots, N\).
- Return type:
(tuple)
- rodeo.kalmantv.square_root.update(mean_state_pred, var_state_pred, x_meas, mean_meas, wgt_meas, var_meas, *args, **kwargs)[source]
Performs one update step of the square-root Kalman filter.
Calculates the mean and square-root variance of \(p(X_n | Z_{0:n})\) from \(p(X_n | Z_{0:n-1})\).
- Parameters:
mean_state_pred (ndarray(n_state)) – State mean at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
var_state_pred (ndarray(n_state, n_state)) – State square-root variance at time \(t = n\) given observations at times \(t = 0, \dots, n-1\).
x_meas (ndarray(n_meas)) – Interrogated measure vector from \(x_{\text{state}}\) at time \(t = n\).
mean_meas (ndarray(n_meas)) – Measurement equation offset at time \(t = n\).
wgt_meas (ndarray(n_meas, n_state)) – Measurement transition matrix at time \(t = n\).
var_meas (ndarray(n_meas, n_meas)) – Measurement square-root variance matrix at time \(t = n\).
args (Optional[pytree]) – Additional positional arguments for Kalman functions.
kwargs (Optional[pytree]) – Additional keyword arguments for Kalman functions.
- Returns:
mean_state_filt (ndarray(n_state)): State mean at time \(t = n\) given observations at times \(t = 0, \dots, n\).
var_state_filt (ndarray(n_state, n_state)): State square-root variance at time \(t = n\) given observations at times \(t = 0, \dots, n\).
- Return type:
(tuple)