estimation opmatrix × matrix × matrix × matrix × matrix × signal × matrix → tableimport fullseye as fs; fs.ledger.kalman_smooth(z, F, H, Q, R, x0, P0, *, store_predictions: 'bool' = True, method: 'str' = 'exact') -> 'dict' (実装を直接呼ぶなら import mathestimation; mathestimation.kalman_smooth(z, F, H, Q, R, x0, P0, *, store_predictions: 'bool' = True, method: 'str' = 'exact') -> 'dict'、台帳から引くなら opsmath.get("kalman_smooth"))線形ガウス状態空間モデル x_{k+1} = F x_k + w(w ~ N(0,Q))、z_k = H x_k + v(v ~ N(0,R))の Kalman フィルタ(前向き)と Rauch–Tung–Striebel 平滑化(後ろ向き)。
z は (T, m) の観測(NaN の行は欠測として更新を飛ばす)。返り値 {"x_filt", "P_filt", "x_smooth", "P_smooth", "nll"}。
門: 平滑化の結果は、全観測と事前分布を一度に使う最小二乗(一括の MAP)と厳密に一致する。
store_predictions=False recomputes each one-step prediction during the
backward pass, reducing peak memory while preserving the return contract.
The default retains prediction histories and is unchanged.
method="cholesky" shares one factorization between the gain and
likelihood. On a measured 100,000-step case it preserved states and changed
accumulated NLL by 1.75e-10. "exact" retains the original arithmetic.
mathops の全 op は入力を検証してから計算する(黙って通さない):
ValueError — float64 への強制変換は虚部を黙って捨てる(numpy は ComplexWarning だけ出して「もっともらしく間違った」実数を返す)。.real/.imag/abs() を明示するか、複素対応の complexops を使う。ValueError — マスクを剥がして下の生値を使う暗黙変換を拒否。埋める/落とすを明示する。ValueError(件数を明示して拒否 — 結果全体に伝播するため)。ValueError。reshape を明示する)。stat_histogram の bins は mathops.MAX_ELEMENTS(2^26 ≈ 6700 万要素)超で ValueError。py -3.11 examples/estimation_tour.pytable を入力に取れる)dynsys_poincare_section · dwt_inverse · chebyshev_eval_nd
estimation)assign_hungarian · hist_distance · stat_ttest_paired · stat_ttest_welch · stat_ks_test · stat_chi2_gof · crlb_gaussian · mat_expm
Provenance: mathestimation.py — MATH operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.