| 第246行: |
第246行: |
| | | | |
| | ==扩展DMD== | | ==扩展DMD== |
| | + | |
| | + | 虽然DMD(动态模态分解)已成为一种近似Koopman算子的标准数值方法,但它基于对系统的线性测量,因此无法识别那些用于近似Koopman算子的强非线性系统所需的非线性坐标变换。为了解决这一问题,Williams等人提出了扩展DMD(eDMD),使得最佳拟合线性DMD回归可以在一个包含状态非线性测量的扩展向量上进行。eDMD方法最近被证明等价于早期变分共形动力学方法,这一观点来自分子动力学文献,并可参考Klus等人的优秀综述。 |
| | + | |
| | + | 在eDMD中,一个扩展状态 <math>\mathbf{z} \in \mathbb{R}^p</math> 由对状态 <math>\mathbf{x}</math> 的非线性测量通过函数 <math>g_k</math> 构造而成: |
| | + | |
| | + | <math> \mathbf{z} = \mathbf{g}(\mathbf{x}) = \begin{bmatrix} g_1(\mathbf{x})\\ g_2(\mathbf{x})\\ \vdots \\ g_p(\mathbf{x}) \end{bmatrix} </math> |
| | + | |
| | + | 向量<math>\mathbf{z}</math>可以包含原始状态<math>\mathbf{x}</math>以及非线性测量,因此通常<math>p \gg n</math>。接下来,像DMD一样构造两个数据矩阵: |
| | + | |
| | + | <math> \mathbf{Z} = \begin{bmatrix} \vert & \vert & & \vert \\ \mathbf{z}_1 & \mathbf{z}_2 & \cdots & \mathbf{z}_m \\ \vert & \vert & & \vert \end{bmatrix}, \quad \mathbf{Z}' = \begin{bmatrix} \vert & \vert & & \vert \\ \mathbf{z}_2 & \mathbf{z}_3 & \cdots & \mathbf{z}_{m+1} \\ \vert & \vert & & \vert \end{bmatrix} </math> |
| | + | 这里<math>\mathbf{z}_k = \mathbf{g}(\mathbf{x}k) = \mathbf{g}(\mathbf{x}(k\Delta t))</math>,我们假设数据是在时间上等间隔采样,为简化起见。和DMD一样,构造一个最佳线性矩阵算子<math>\mathbf{A}\mathbf{Z}</math>,将<math>\mathbf{Z}</math>映射到<math>\mathbf{Z}'</math>: |
| | + | |
| | + | <math> \mathbf{A}_\mathbf{Z} = \underset{\mathbf{A}_\mathbf{Z}}{\arg\min} \, \|\mathbf{Z}' - \mathbf{A}_\mathbf{Z} \mathbf{Z}\|_F = \mathbf{Z}'\mathbf{Z}^\dagger </math> |
| | + | 由于扩展向量<math>\mathbf{z}</math>可能远大于状态<math>\mathbf{x}</math>的维数,通常有必要使用核方法(kernel methods)来计算这个回归问题。近年来,利用核方法近似Koopman算子的DMD方法已经成为一个重要的研究课题。从原则上讲,函数<math>{g_k}_{k=1}^p</math>构成了一个丰富的基底,可以用于近似Koopman算子。在无限样本数据的情况下,eDMD矩阵会收敛到由这些函数所张成的子空间上的Koopman算子的投影。然而,如果这些函数并不张成Koopman不变子空间,那么投影算子将会产生与真实Koopman算子不同的伪特征值和特征向量。 |
| | + | |
| | + | 例如,设有一个平凡的对角线线性系统,其特征值<math>\lambda \in {1, 2, 5}</math>,特征向量<math>\xi_j</math>为坐标方向<math>x_j</math>,以及一个对前两个特征向量进行混合的简单测量: |
| | + | |
| | + | <math> \frac{d}{dt} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 2 & 0 \\ 0 & 0 & 5 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} </math> <math> \quad \text{且} \quad y = \begin{bmatrix} 1 & 1 & 0 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} . </math> |
| | + | |
| | + | 在这种情况下,DMD会预测出一个伪特征值3,这实际上是前两个特征值<math>\lambda=1</math>和<math>\lambda=2</math>的和,因为测量是前两个特征向量之和。因此,正如下文所述,采用验证与交叉验证技术以避免eDMD模型过拟合是非常重要的。 |
| | + | |
| | + | Koopman算子的特征函数形成了Koopman不变子空间,并为动力学提供了理想的基底或坐标系来表示其演化。然而,Koopman特征函数在标准基底中可能没有有限的表达。因此,这些特征函数可能只能通过给定有限基底来近似表示。我们可以将一个特征函数<math>\varphi(\mathbf{x})</math>用来自(5.1)的候选函数集合<math>{g_k(\mathbf{x})}_{k=1}^p</math>展开近似为: |
| | + | |
| | + | <math> \varphi(\mathbf{x}) \approx \sum_{k=1}^{p} \xi_k g_k(\mathbf{x}) = \boldsymbol{\xi}^T \mathbf{g}(\mathbf{x}) </math> |
| | + | 在离散时间中,Koopman特征函数<math>\varphi(\mathbf{x})</math>在一组数据快照轨迹<math>{\mathbf{x}_1, \ldots, \mathbf{x}_m}</math>上的值应满足: |
| | + | |
| | + | <math> \lambda \left[\varphi(\mathbf{x}_1)\;\; \varphi(\mathbf{x}_2)\;\; \cdots\;\; \varphi(\mathbf{x}_m)\right] = \left[\varphi(\mathbf{x}_2)\;\; \varphi(\mathbf{x}_3)\;\; \cdots\;\; \varphi(\mathbf{x}_{m+1})\right] </math> |
| | + | 将<math>\varphi</math>用(5.5)表达式展开,这个位等关系变为: |
| | + | |
| | + | <math> \lambda \left[\boldsymbol{\xi}^T \mathbf{z}_1\;\; \boldsymbol{\xi}^T \mathbf{z}_2\;\; \cdots\;\; \boldsymbol{\xi}^T \mathbf{z}_m\right] = \left[\boldsymbol{\xi}^T \mathbf{z}_2\;\; \boldsymbol{\xi}^T \mathbf{z}_3\;\; \cdots\;\; \boldsymbol{\xi}^T \mathbf{z}_{m+1}\right] </math> |
| | + | 进而可以用数据矩阵<math>\mathbf{Z}</math>和<math>\mathbf{Z}'</math>将其写作如下矩阵方程: |
| | + | |
| | + | <math> \lambda \boldsymbol{\xi}^T \mathbf{Z} - \boldsymbol{\xi}^T \mathbf{Z}' = 0 </math> |
| | + | |
| | + | 如果我们对上式(5.8)采用最小二乘(least-squares)拟合,这就化简为eDMD: |
| | + | |
| | + | <math> \lambda \boldsymbol{\xi}^T = \boldsymbol{\xi}^T \mathbf{Z}' \mathbf{Z}^\dagger </math> |
| | + | 特征函数<math>\varphi(\mathbf{x})</math>是由<math>\mathbf{Z}' \mathbf{Z}^\dagger</math>的左eDMD特征向量<math>\boldsymbol{\xi}^T</math>构成的,在基底<math>{g_k(\mathbf{x})}_{k=1}^p</math>下,<math>\varphi \approx \boldsymbol{\xi}^T \mathbf{z}</math>。右特征向量是eDMD模态(modes),与DMD模态类似。 |
| | + | |
| | + | 必须确认预测到的特征函数在轨迹上确实表现为线性,这可以通过与预测动力学<math>\varphi(\mathbf{x}_{k+1}) = \lambda \varphi(\mathbf{x}_k)</math>进行比较来实现,因为上述回归会导致伪特征值和伪特征向量,除非基底函数<math>g_k</math>张成了Koopman不变子空间。 |
| | + | 通常会将原始状态<math>\mathbf{x}</math>也包含在扩展eDMD向量<math>\mathbf{z}</math>中。然而,有研究表明,对于包含多个固定点、周期轨道或其他吸引子的系统,如果在eDMD中引入状态<math>\mathbf{x}</math>,会导致封闭性问题。因为这类系统无法在拓扑上与具有单个固定点的有限维线性eDMD系统共轭。例如,图1.1中的Duffing振子系统有三个固定点,因此没有任何有限线性系统可以准确地在这三个点附近拟合状态<math>\mathbf{x}</math>的演化。不过,像哈密顿量这样的特征函数可能能够被准确地展开于基底中。 |
| | + | 因此,区分出准确和伪特征函数对于eDMD来说至关重要;通常对应弱阻尼特征值的特征函数更容易被准确近似,因为它们在数据中具有显著特征。 |
| | + | |
| | + | 防止过拟合的一种方法是推广稀疏性,比如SINDy方法。简约原则也可以用来识别Koopman特征函数,只需在拟合<math>\varphi</math>时,从基底<math>{g_k(\mathbf{x})}_{k=1}^p</math>中选择最重要的几项即可。 |
| | + | |
| | + | 与标准DMD类似,矩阵<math>\mathbf{Z}</math>中的数据不必来源于单条轨迹,也可以通过更高效的采样方式获取,比如拉丁超立方采样,或在相空间中随机采样。在这种情况下,<math>\mathbf{Z}'</math>中的数据则通过将<math>\mathbf{Z}</math>中的数据沿动力学系统向前推进一个时间步获得。此外,还可以利用RKHS,保证特征函数<math>\varphi(\mathbf{x})</math>的正则性,从而支持在状态空间的局部对子集样本做扩展计算。 |
| | | | |
| | ==残差DMD== | | ==残差DMD== |