| 第199行: |
第199行: |
| | 其中 <math> \boldsymbol{\xi}^\top_α(K) = α \boldsymbol{\xi}^\top_α </math>。这代表<math>\boldsymbol{\xi}^\top</math>是<math>K</math>的左特征向量。 | | 其中 <math> \boldsymbol{\xi}^\top_α(K) = α \boldsymbol{\xi}^\top_α </math>。这代表<math>\boldsymbol{\xi}^\top</math>是<math>K</math>的左特征向量。 |
| | | | |
| − | ==不变特征子空间== | + | ==不变子空间== |
| | | | |
| | 应用的Koopman分析并不是在[[希尔伯特空间]]中捕捉所有测量函数的演化,而是近似在由有限组测量函数张成的不变子空间上描述系统的演化。一个Koopman不变子空间<ref name="brunton_2022" />被定义为一组函数<math>{g_1, g_2, \ldots, g_p}</math>的张成空间,如果该子空间中的所有函数<math>g</math>都满足 | | 应用的Koopman分析并不是在[[希尔伯特空间]]中捕捉所有测量函数的演化,而是近似在由有限组测量函数张成的不变子空间上描述系统的演化。一个Koopman不变子空间<ref name="brunton_2022" />被定义为一组函数<math>{g_1, g_2, \ldots, g_p}</math>的张成空间,如果该子空间中的所有函数<math>g</math>都满足 |
| 第212行: |
第212行: |
| | | | |
| | Koopman算子的任意有限组特征函数都将张成一个不变子空间。把这些特征函数作为系统的“特征坐标”是Koopman分析中很重要的一步,因为沿这些特征函数方向,系统动力学本质上线性化。实际操作中,通常只能识别一个近似不变子空间,由一组函数<math>\{g_j\}_{j=1}^p</math>张成,并且每个函数<math>g_j</math>都可以由有限组特征函数近似表示<math> g_j \approx \sum_{k=1}^p v_{jk} \varphi_k </math>。如果我们在实际操作过程中,选取的观测函数不能张成一个不变子空间的话,最后得到的Koopman矩阵会出现[[伪特征值]]的问题<ref name="colbrook_2024">Colbrook, M. J., & Townsend, A. (2024). Rigorous data‐driven computation of spectral properties of Koopman operators for dynamical systems. Communications on Pure and Applied Mathematics, 77(1), 221–283. https://doi.org/10.1002/cpa.22125</ref>。 | | Koopman算子的任意有限组特征函数都将张成一个不变子空间。把这些特征函数作为系统的“特征坐标”是Koopman分析中很重要的一步,因为沿这些特征函数方向,系统动力学本质上线性化。实际操作中,通常只能识别一个近似不变子空间,由一组函数<math>\{g_j\}_{j=1}^p</math>张成,并且每个函数<math>g_j</math>都可以由有限组特征函数近似表示<math> g_j \approx \sum_{k=1}^p v_{jk} \varphi_k </math>。如果我们在实际操作过程中,选取的观测函数不能张成一个不变子空间的话,最后得到的Koopman矩阵会出现[[伪特征值]]的问题<ref name="colbrook_2024">Colbrook, M. J., & Townsend, A. (2024). Rigorous data‐driven computation of spectral properties of Koopman operators for dynamical systems. Communications on Pure and Applied Mathematics, 77(1), 221–283. https://doi.org/10.1002/cpa.22125</ref>。 |
| | + | |
| | + | ==伪特征值的出现== |
| | + | |
| | + | 然而,如果选取的观测函数并不张成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>的和,因为测量是前两个特征向量之和。因此,在实际应用中选取观测函数时,采取一些手段避免过拟合是非常重要的。除了观测函数选取不当,在数据驱动算法中,如果数据量没有足够多,或者数据采样相比于原本的连续动力学过于离散化,也会造成伪特征值出现的问题。具体分析见下文“残差DMD”章节。 |
| | | | |
| | =Koopman算子应用的简单案例= | | =Koopman算子应用的简单案例= |
| 第302行: |
第310行: |
| | <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{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>的维数,通常有必要使用[[核方法]]来计算这个回归问题。近年来,利用[[核方法]]近似Koopman算子的DMD方法已经成为一个重要的研究课题<ref name=william_2015_kernal>M. O. Williams, C. W. Rowley, and I. G. Kevrekidis, A kernel approach to data-driven Koopman spectral analysis, J. Comput. Dynam., 2 (2015), pp. 247--265. (Cited on pp. 255, 256, 284, 285, 294, 318)</ref>,具体可参考下文“核DMD”的章节。在无限样本数据的情况下,eDMD矩阵会收敛到由这些函数所张成的子空间上的Koopman算子的投影。然而,如果这些函数并不张成Koopman不变子空间,那么投影算子将会产生与真实Koopman算子不同的伪特征值和伪特征向量。 | + | 由于扩展向量<math>\mathbf{z}</math>可能远大于状态<math>\mathbf{x}</math>的维数,通常有必要使用[[核方法]]来计算这个回归问题。近年来,利用[[核方法]]近似Koopman算子的DMD方法已经成为一个重要的研究课题<ref name=william_2015_kernal>M. O. Williams, C. W. Rowley, and I. G. Kevrekidis, A kernel approach to data-driven Koopman spectral analysis, J. Comput. Dynam., 2 (2015), pp. 247--265. (Cited on pp. 255, 256, 284, 285, 294, 318)</ref>,具体可参考下文“核DMD”的章节。在无限样本数据的情况下,eDMD矩阵会收敛到由这些函数所张成的子空间上的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不变子空间,并为动力学提供了理想的基底或坐标系来表示其演化。这些特征函数可以通过给定的观测函数来近似表示。我们可以将一个特征函数<math>\varphi(\mathbf{x})</math>用函数集合<math>{g_k(\mathbf{x})}_{k=1}^p</math>展开近似为:
| + | Koopman算子的特征函数一定可以形成Koopman不变子空间,并为动力学提供了理想的基底或坐标系来表示其演化。这些特征函数可以通过给定的观测函数来近似表示。我们可以将一个特征函数<math>\varphi(\mathbf{x})</math>用函数集合<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> | | <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>上的值应满足: | + | 在离散时间中,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> \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> |
| 第326行: |
第328行: |
| | <math> \lambda \boldsymbol{\xi}^T \mathbf{Z} - \boldsymbol{\xi}^T \mathbf{Z}' = 0 </math> | | <math> \lambda \boldsymbol{\xi}^T \mathbf{Z} - \boldsymbol{\xi}^T \mathbf{Z}' = 0 </math> |
| | | | |
| − | 如果我们对上式采用[[最小二乘]](least-squares)拟合,这就化简为eDMD: | + | 如果我们对上式采用[[最小二乘]](least-squares)拟合,这就化简为: |
| | | | |
| | <math> \lambda \boldsymbol{\xi}^T = \boldsymbol{\xi}^T \mathbf{Z}' \mathbf{Z}^\dagger </math> | | <math> \lambda \boldsymbol{\xi}^T = \boldsymbol{\xi}^T \mathbf{Z}' \mathbf{Z}^\dagger </math> |
| 第332行: |
第334行: |
| | 特征函数<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模态,与DMD模态类似。 | | 特征函数<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模态,与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>中。然而,有研究表明<ref name=brunton_2016>S. L. Brunton, B. W. Brunton, J. L. Proctor, and J. N. Kutz, Koopman invariant subspaces and finite linear representations of nonlinear dynamical systems for control, PLoS ONE, 11 (2016), art. e0150171. (Cited on pp. 234, 247, 248, 254, 284, 285, 286, 288, 295, 308, 309, 312, 318)</ref>,对于包含多个[[不动点]]、周期轨道或其他[[吸引子]]的系统,如果在eDMD中引入状态<math>\mathbf{x}</math>,会导致观测空间不是Koopman不变子空间。此外,这类系统无法与具有单个不动点的有限维线性eDMD系统[[拓扑共轭]]。例如,[[Duffing振子]]系统有三个不动点,因此没有任何有限线性系统可以准确地全局拟合状态<math>\mathbf{x}</math>的演化。不过,像[[哈密顿量]]这样的特征函数可能能够被准确地展开。因此,区分出准确和伪特征函数对于eDMD来说至关重要。 |
| − | 通常会将原始状态<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>中选择最重要的几项即可。
| + | 防止过拟合的一种方法是推广稀疏性,比如[[SINDy]](Sparse Identification of Nonlinear Dynamics)方法<ref name=brunton_2016_sindy>S. L. Brunton, J. L. Proctor, and J. N. Kutz, Discovering governing equations from data by sparse identification of nonlinear dynamical systems, Proc. Natl. Acad. Sci. USA, 113 (2016), pp. 3932--3937. (Cited on pp. 255, 257, 286)</ref>。它可以基于一些约束条件筛选观测函数,从<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类似,矩阵<math>\mathbf{Z}</math>中的数据不必来源于单条轨迹,也可以通过更高效的采样方式获取,比如[[拉丁超立方采样]],或在相空间中随机采样。在这种情况下,<math>\mathbf{Z}'</math>中的数据则通过将<math>\mathbf{Z}</math>中的数据沿动力学系统向前推进一个时间步获得。 |
| | | | |
| | ==残差DMD== | | ==残差DMD== |