| 第455行: |
第455行: |
| | 当我们讨论的是多维向量时,字典函数的映射可以写作<math>\Psi(\boldsymbol{x}) = [\psi_1(\boldsymbol{x}), \dots, \psi_{N_K}(\boldsymbol{x})] \in \mathbb{C}^{1 \times N_K}</math>,则子空间<math>V_{N_K}</math>中的任意观测函数g可表示为字典函数的线性组合,即<math>g(\boldsymbol{x}) = \sum_{j=1}^{N_K} \psi_j(\boldsymbol{x}) g_j = \Psi(\boldsymbol{x}) \boldsymbol{g}</math>,其中<math>\boldsymbol{g} \in \mathbb{C}^{N_K}</math>为系数[[向量]]。从字典函数与观测函数两个概念的关系中不难看出,字典函数本身也是特殊的一组观测函数,所以它也满足<ref name=Colbrook_2023 /><ref name=Colbrook_2024>Colbrook, M. J. & Townsend, A. Rigorous data‐driven computation of spectral properties of koopman operators for dynamical systems. Commun. Pure Appl. Math. 77, 221–283 (2024).</ref>: | | 当我们讨论的是多维向量时,字典函数的映射可以写作<math>\Psi(\boldsymbol{x}) = [\psi_1(\boldsymbol{x}), \dots, \psi_{N_K}(\boldsymbol{x})] \in \mathbb{C}^{1 \times N_K}</math>,则子空间<math>V_{N_K}</math>中的任意观测函数g可表示为字典函数的线性组合,即<math>g(\boldsymbol{x}) = \sum_{j=1}^{N_K} \psi_j(\boldsymbol{x}) g_j = \Psi(\boldsymbol{x}) \boldsymbol{g}</math>,其中<math>\boldsymbol{g} \in \mathbb{C}^{N_K}</math>为系数[[向量]]。从字典函数与观测函数两个概念的关系中不难看出,字典函数本身也是特殊的一组观测函数,所以它也满足<ref name=Colbrook_2023 /><ref name=Colbrook_2024>Colbrook, M. J. & Townsend, A. Rigorous data‐driven computation of spectral properties of koopman operators for dynamical systems. Commun. Pure Appl. Math. 77, 221–283 (2024).</ref>: |
| | | | |
| − | :<math>[\mathcal{K}\psi_j](\boldsymbol{x}) = \psi_j(F(\boldsymbol{x})) \approx \sum_{i=1}^{N_K} (K_{\text{EDMD}})_{ij} \psi_i(\boldsymbol{x}), \quad 1 \leq j \leq N_K.</math> | + | :<math>[\mathcal{K}\psi_j](\boldsymbol{x}) = \psi_j(F(\boldsymbol{x})) \approx \sum_{i=1}^{N_K} K_{ij} \psi_i(\boldsymbol{x}), \quad 1 \leq j \leq N_K.</math> |
| | | | |
| − | 基于这个近似,我们可以把Koopman算子<math>\mathcal{K}</math>对任意观测函数 g 的作用拆分成两部分:一部分是用上述近似得到的“可表示项”,另一部分是近似带来的“误差项(残差)”<math>r(g, \boldsymbol{x})</math>,即为: | + | 基于这个近似,我们可以把Koopman算子<math>\mathcal{K}</math>对任意观测函数 g 的作用拆分成两部分:一部分精确对应着Koopman算子原始的定义,另一部分是近似带来的误差项(残差)<math>r(g, \boldsymbol{x})</math>,即为: |
| | | | |
| − | :<math>[\mathcal{K}g](\boldsymbol{x}) = \Psi(F(\boldsymbol{x})) \boldsymbol{g} = \Psi(\boldsymbol{x}) (K_{\text{EDMD}} \boldsymbol{g}) + \underbrace{\sum_{j=1}^{N_K} \psi_j(F(\boldsymbol{x})) g_j - \Psi(\boldsymbol{x}) (K_{\text{EDMD}} \boldsymbol{g})}_{r(g, \boldsymbol{x})}.</math> | + | :<math>[\mathcal{K}g](\boldsymbol{x}) = \Psi(F(\boldsymbol{x})) \boldsymbol{g} = \Psi(\boldsymbol{x}) (K \boldsymbol{g}) + \underbrace{\sum_{j=1}^{N_K} \psi_j(F(\boldsymbol{x})) g_j - \Psi(\boldsymbol{x}) (K \boldsymbol{g})}_{r(g, \boldsymbol{x})}.</math> |
| | | | |
| − | 残差项衡量的是“在子空间<math>V_{N_K}</math>上近似Koopman算子”的误差大小。通常情况下,<math>V_{N_K}</math>并非<math> \mathcal{K} </math>的不变子空间,因此不存在能使<math>\displaystyle{ r(g, \boldsymbol{x}) }</math>对所有<math>\displaystyle{ g \in V_{N_K} }</math>和<math>\boldsymbol{x} \in \Omega</math>均为零的<math>\displaystyle{ K_{\text{EDMD}} }</math>。 | + | 残差项衡量的是“在子空间<math>V_{N_K}</math>上近似Koopman算子”的误差大小。如果残差项为0,说明我们完美地用一个线性系统重构出了原本的非线性系统。通常情况下,<math>V_{N_K}</math>不是<math> \mathcal{K} </math>的不变子空间,因此不存在能使<math>\displaystyle{ r(g, \boldsymbol{x}) }</math>对所有<math>\displaystyle{ g \in V_{N_K} }</math>和<math>\boldsymbol{x} \in \mathcal{X}</math>均为零的<math>\displaystyle{ K }</math>。 |
| | | | |
| − | 因此,我们的核心任务就变成了:找到一个最优的矩阵<math>K_{\text{EDMD}}</math>,让这个残差项的整体误差最小。为了量化“整体误差”,我们用“积分范数”来衡量,对应的优化问题就是:
| + | '''优化目标:'''因此,我们的核心任务就变成了找到一个最优的矩阵<math>K</math>,让这个残差项的整体误差最小。为了在系统整个定义域上量化整体误差,我们要让残差项在定义域上求积分。对应的优化问题就是: |
| | | | |
| − | :<math>\displaystyle{ \arg\min_{B \in \mathbb{C}^{N_K \times N_K}} \left\{ \int_{\Omega} \max_{\substack{g \in \mathbb{C}^{N_K}, \\ \|\boldsymbol{g}\|=1}} |r(g, \boldsymbol{x})|^2 d\omega(\boldsymbol{x}) = \int_{\Omega} \|\Psi(F(\boldsymbol{x})) - \Psi(\boldsymbol{x}) B\|_{\ell^2}^2 d\omega(\boldsymbol{x}) \right\} }</math> | + | :<math>\displaystyle{ \arg\min_{B \in \mathbb{C}^{N_K \times N_K}} \left\{ \int_{\mathcal{X}} \max_{\substack{g \in \mathbb{C}^{N_K}, \\ \|\boldsymbol{g}\|=1}} |r(g, \boldsymbol{x})|^2 d\omega(\boldsymbol{x}) = \int_{\mathcal{X}} \|\Psi(F(\boldsymbol{x})) - \Psi(\boldsymbol{x}) B\|_{\ell^2}^2 d\omega(\boldsymbol{x}) \right\} }</math> |
| | | | |
| | 其中<math>\|\mathbf{ · }\|_2</math>表示[[向量]]的标准欧几里得范数。不过实际计算中无法直接对上式的求积分(状态空间连续,无法遍历所有状态),因此通过 “数值积分规则”(以<math>\displaystyle{ \{x_j\}_{j=1}^M }</math>为[[节点]],<math>\boldsymbol{y}^{(j)} = F(\boldsymbol{x}^{(j)}) </math>,<math>\displaystyle{ \{w_j\}_{j=1}^M }</math>为权重,<math>M </math>为[[初始条件]]数量)近似积分。通过这种方式,把连续的积分转化为离散的加权和,原来的优化问题就变成了更容易计算的“[[加权最小二乘问题]]”: | | 其中<math>\|\mathbf{ · }\|_2</math>表示[[向量]]的标准欧几里得范数。不过实际计算中无法直接对上式的求积分(状态空间连续,无法遍历所有状态),因此通过 “数值积分规则”(以<math>\displaystyle{ \{x_j\}_{j=1}^M }</math>为[[节点]],<math>\boldsymbol{y}^{(j)} = F(\boldsymbol{x}^{(j)}) </math>,<math>\displaystyle{ \{w_j\}_{j=1}^M }</math>为权重,<math>M </math>为[[初始条件]]数量)近似积分。通过这种方式,把连续的积分转化为离散的加权和,原来的优化问题就变成了更容易计算的“[[加权最小二乘问题]]”: |