logo

WSINDy:弱シンディアルゴリズム 📂統計的分析

WSINDy:弱シンディアルゴリズム

アルゴリズム 1 2

SINDy アルゴリズム: 状態空間が $\mathbb{R}^{n}$ の 力学系 が次のような 滑らかな関数 $f : \mathbb{R}^{n} \to \mathbb{R}^{n}$ によって与えられるとする。 $$ \dot{\mathbf{x}} = f \left( \mathbf{x} \right) $$ $X$ の 独立変数 に対してある 非線形関数を適用して得られる派生変数 から作った 行列 $\Theta \left( X \right) \in \mathbb{R}^{m \times p}$ と次の 行列方程式STLSQ を実行して 支配方程式governing equation を見つけるアルゴリズムを SINDySINDy と呼ぶ。 $$ \dot{X} = \Theta \left( X \right) \Xi $$

SINDy の変形として、差分 等による 微分係数 の数値的近似の代わりに弱形式化weak formulation を経由するアルゴリズムを Weak SINDyWeak SINDy と呼ぶ。

説明

元来の SINDy と同様、支配方程式を見つける際に 多次元ベクトル関数 $\mathbf{x} (t) = \left( x_{1} , \cdots , x_{n} \right)$ の各成分ごとに最適化を反復すれば多次元へ一般化できるので、説明の便宜上 $\dot{x} = f (x)$ のような1次元の 常微分方程式 を考える。 同様に テスト関数 $\phi : \mathbb{R} \to \mathbb{R}$ の サポート が $[a,b]$ だとすると、次のように左側に $\phi$ が掛かった 内積 を考えることができる。 $$ \left< \phi , \dot{x} \right> = \left< \phi , f ( x ) \right> $$ ここで $f (x)$ は元々の SINDy と同様に $\dot{x} = f(x) = \Theta (x) \Xi$ のように表される関数である。

弱導関数の定義: $u \in {L}_{\mathrm{loc}}^1(\Omega)$ とする。もし次のような式を満たす $v_{\alpha}$ が存在するなら、これを $u$ の 弱導関数weak derivative、あるいは 超関数的導関数distributional derivative と呼ぶ。 $$ \begin{align*} T_{{v}_{\alpha}} &= {D}^{\alpha}T_{u} & \text{in } \mathcal{D}^{\ast}(\Omega) \\ \int_{\Omega}v_{\alpha}(x)\phi (x)dx &= (-1)^{|\alpha|} \int_{\Omega} u(x){D}^{\alpha}\phi (x)dx & \forall\ \phi \in \mathcal{D}(\Omega) \end{align*} $$

一方、左辺の内積を積分形に展開して書き直すと、$\phi$ がテスト関数であると仮定したためコンパクトサポートを持ち $\phi (a) = \phi (b) = 0$ でなければならず、部分積分法 によってそれ自体が弱導関数に関する構成となる。 $$ \begin{align*} & \left< \phi , \dot{x} \right> \\ =& \int_{a}^{b} \phi (t) \dot{x} dt \\ =& \left[ \phi (t) x(t) \right]_{a}^{b} - \int_{a}^{b} \dot{\phi} (t) x(t) dt \\ =& \left( -1 \right)^{1} \int_{a}^{b} {\frac{ d }{ dt }} \phi (t) x(t) dt \\ =& - \int_{a}^{b} \dot{\phi} (t) x(t) dt \end{align*} $$

実際、$\dot{x}$ は $x$ の導関数であり、弱導関数にもなる。 $$ - \int_{a}^{b} \dot{\phi} (t) x(t) dt = \left< \phi , \dot{x} \right> = \left< \phi , f ( x ) \right> = \int_{a}^{b} \phi (t) \Theta \left( x (t) \right) \Xi dt $$ また、通常 $\Xi$ が時間 $t$ と無関係で独立であると仮定すると $\Xi$ は 定積分 の外に出すことができる。結局、両辺を最も近づける 最小二乗問題 になり、スパース回帰 を通じて $\Xi$ を求めることになる。

$$ - \int_{a}^{b} \dot{\phi} (t) x(t) dt = \int_{a}^{b} \phi (t) \Theta \left( x (t) \right) dt \Xi $$ 最終的には上のように $\dot{x}$ が存在しないにもかかわらず $\dot{x} = f(x)$ の右辺のみを見つけたことになる。テスト関数は例えば、参考文献でそうしていたように 定数 $C$ と $p, q \ge 1$ に対して次のような関数にしてよい。 $$ \phi (t) := \begin{cases} C \left( t - a \right)^{p} \left( b - t \right)^{q} & , \text{if } a < t < b \\ 0 & , \text{otherwise} \end{cases} $$ テスト関数はそもそも正確にその正体を知って与えるものであり、$x (t)$ は元の与えられた 時系列 であって $\Theta (x)$ に至るまでノイズはあっても我々が知らない情報ではない。


  1. Messenger, D. A., & Bortz, D. M. (2021). Weak SINDy: Galerkin-based data-driven model selection. Multiscale Modeling & Simulation, 19(3), 1474-1497. https://doi.org/10.1137/20M1343166 ↩︎

  2. Messenger, D. A., & Bortz, D. M. (2021). Weak SINDy for partial differential equations. Journal of Computational Physics, 443, 110525. https://doi.org/10.1016/j.jcp.2021.110525 ↩︎