| 第340行: |
第340行: |
| | | | |
| | ==残差DMD== | | ==残差DMD== |
| − | 在动力系统研究中,Koopman算子理论通过将非线性系统全局线性化,为分析复杂动力学行为提供了强大框架,但传统方法如扩展动态模式分解(EDMD)面临谱污染、连续谱处理不足和高维挑战等局限。残差动态模式分解(ResDMD)通过引入残差计算机制,构建Koopman算子<math>\mathcal{K}</math>及其伴随算子与自身的乘积<math>\mathcal{K}^* \mathcal{K}</math>的[[Galerkin近似]],有效区分真实特征值与伪特征值,从根本上解决了EDMD因有限维假设和离散化误差导致的谱失真问题。
| + | 在动力系统研究中,Koopman算子理论通过全局线性化为分析非线性系统提供框架,但传统方法如扩展动态模式分解(EDMD)面临谱污染、连续谱处理不足和高维挑战等局限。残差动态模式分解(ResDMD)通过引入残差计算机制,构建Koopman算子<math>\mathcal{K}</math>及其伴随算子与自身的乘积<math>\mathcal{K}^* \mathcal{K}</math>的[[Galerkin近似]],有效区分真实特征值与伪特征值,解决了EDMD因有限维假设和离散化误差导致的谱失真问题。 |
| | | | |
| | ===理论=== | | ===理论=== |
| − | 给定一组观测函数字典<math>\{\psi_1, \dots, \psi_{N_K}\} \subset D(\mathcal{K})(D(\mathcal{K})</math>为<math>\mathcal{K}</math>的定义域),EDMD 的目标是在子空间<math>V_{N_K} = \text{span}\{\psi_1, \dots, \psi_{N_K}\}</math>上近似<math>\mathcal{K}</math>的作用,即满足: | + | 给定一组观测函数字典<math>\{\psi_1, \dots, \psi_{N_K}\} \subset D(\mathcal{K})(D(\mathcal{K})</math>为<math>\mathcal{K}</math>的定义域),如一系列的多项式,EDMD 的目标是在子空间<math>V_{N_K} = \text{span}\{\psi_1, \dots, \psi_{N_K}\}</math>上近似<math>\mathcal{K}</math>的作用,即满足: |
| | | | |
| | <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_{\text{EDMD}})_{ij} \psi_i(\boldsymbol{x}), \quad 1 \leq j \leq N_K.</math> |
| | | | |
| − | 定义向量值特征映射<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>\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>为系数向量。由此可将库普曼算子对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>为系数向量。由此可将库普曼算子对g的作用分解为: | |
| | | | |
| | <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_{\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> |
| 第378行: |
第374行: |
| | | | |
| | ===算法=== | | ===算法=== |
| − | 下面介绍三个相关的算法,算法依托ResDMD的残差控制机制,避免谱污染,适用于非线性、混沌、高维等复杂动力系统,从特征对提取→伪谱估计→谱测度计算层层递进,覆盖不同谱分析需求。
| + | 一、ResDMD计算无谱污染的特征对算法:从切片数据中提取Koopman算子的准确特征对(特征值+特征函数),核心解决传统EDMD的谱污染问题。 |
| − | | |
| − | 一、ResDMD计算无谱污染的特征对算法:从快照数据中提取Koopman算子的准确特征对(特征值+特征函数),核心解决传统EDMD的谱污染问题。
| |
| | | | |
| | 输入:<math>\{x^{(j)}\}_{j=1}^M</math>(初始状态)、<math>\{y^{(j)}=F(x^{(j)})\}_{j=1}^M</math>(下一时刻状态)、<math>\{w_j\}_{j=1}^M</math>(数值积分权重)、<math>\{\psi_j\}_{j=1}^{N_K}</math>(观测函数)、<math>\epsilon>0</math>(残差阈值) | | 输入:<math>\{x^{(j)}\}_{j=1}^M</math>(初始状态)、<math>\{y^{(j)}=F(x^{(j)})\}_{j=1}^M</math>(下一时刻状态)、<math>\{w_j\}_{j=1}^M</math>(数值积分权重)、<math>\{\psi_j\}_{j=1}^{N_K}</math>(观测函数)、<math>\epsilon>0</math>(残差阈值) |
| 第392行: |
第386行: |
| | # 计算每个候选特征对的残差<math>res(\lambda_j, g_j)</math>(衡量特征对与真实Koopman算子的契合度)。 | | # 计算每个候选特征对的残差<math>res(\lambda_j, g_j)</math>(衡量特征对与真实Koopman算子的契合度)。 |
| | # 丢弃残差大于<math>\epsilon</math>的伪特征对,保留满足精度的有效特征对。 | | # 丢弃残差大于<math>\epsilon</math>的伪特征对,保留满足精度的有效特征对。 |
| − |
| |
| − | 此算法可以提取Koopman算子的离散谱(特征值)及对应特征函数,无虚假特征值污染,适用于需要明确系统主导模态的场景(如流体动力学中的振荡模态、分子动力学中的关键运动模式)。
| |
| − |
| |
| − |
| |
| | | | |
| | | | |
| 第409行: |
第399行: |
| | # 对每个网格点<math>z_j</math>,求解最小残差<math>\tau_j = \min_{g \in \mathbb{C}^{N_K}} res(z_j, \Psi g)</math>(转化为广义SVD问题)。 | | # 对每个网格点<math>z_j</math>,求解最小残差<math>\tau_j = \min_{g \in \mathbb{C}^{N_K}} res(z_j, \Psi g)</math>(转化为广义SVD问题)。 |
| | # 筛选出最小残差<math>\tau_j < \epsilon</math>的网格点,构成<math>\epsilon</math>-伪谱。 | | # 筛选出最小残差<math>\tau_j < \epsilon</math>的网格点,构成<math>\epsilon</math>-伪谱。 |
| − |
| |
| − | 此算法可以区分真实谱区域与虚假特征值,验证特征值可靠性:位于伪谱内的特征值才是可信的,计算得到的伪谱可以反映系统暂态行为(如湍流的短期演化、混沌系统的局部稳定性)。
| |
| | | | |
| | ===例子=== | | ===例子=== |