本ページでは、MCDC ツールによるモデル推定の実行例として、Lorenz モデルに従う観測データ系列のモデル推定を行う手順を紹介します。
Lorenz 方程式は非線形方程式の一つで、ここでは、Lorenz 方程式をもとに以下の非線形状態空間モデルを考えます。
- 状態遷移関数
x1(t) = (Sigma * x2(t-1) * dt + x1(t-1) * (1 - Sigma * dt)) + sqrt(q1) * randn; x2(t) = (x1(t-1) * (Rho - y1(t-1))) * dt + x2(t-1) * (1 - dt) + sqrt(q2) * randn;
- 観測関数
y1(t) = (x1(t-1) * x2(t-1) * dt) + y1(t-1) * (1 - Beta * dt) + sqrt(r1) * randn; y2(t) = Alpha0 * x1(t-1) .^ 2 + sqrt(r2) * randn; y3(t) = Alpha0 * x2(t-1) .^ 2 + sqrt(r3) * randn;
ただし Sigma, Rho, Beta, Alpha0 はモデルパラメータであり、q, r は系列に加えられるノイズの大きさを制御するパラメータです。dt は時間間隔です。
この実験では、Lorenz モデルから生成された観測データ系列を与えて、モデル推定を行い、推定されたモデルの観測データ系列への当てはめを確認します。モデルパラメータは以下のように設定しました。
パラメータ名 | 内容 | 設定値 |
---|---|---|
T | 系列の長さ | 1,000 |
Sigma | モデルパラメータ | 10 |
Rho | モデルパラメータ | 28 |
Beta | モデルパラメータ | 8/3 |
Alpha0 | モデルパラメータ | 1 |
(q1, q2) | 状態遷移関数に加えられるノイズの大きさ | (1e-1, 1e-1) |
(r1, r2, r3) | 観測関数に加えられるノイズの大きさ | (1e-1, 1e-1, 1e-1) |
dt | 時間間隔 | 1e-2 |