更改

跳到导航 跳到搜索
添加1,879字节 、 2025年12月29日 (一) 13:44
第317行: 第317行:     
下图是一张关于DMD算法在流体流动应用上的算法流程示意图<ref name=brunton_2022 />。图中左侧展示了一系列实验图像时间序列,即切片数据。时间t从上到下增加,表示流体流经圆柱体时的动态变化。有了这些数据作为输入,下图中间部分是拟合过程。我们可以直接通过最小二乘法拟合出线性迭代矩阵A。右侧则是DMD的输出。一方面我们可以预测系统未来的演化,更重要的,我们可以通过对矩阵A做特征值分解,得到Koopman特征值和特征函数的近似(理论见上文“Koopman模式分解”章节),从而可以把原本的动力学分解成几个主要的动力学模式。这些动力学模式分别提取出了原动力学中具有物理含义的结构,比如平均流场、不同尺度的涡旋等等。
 
下图是一张关于DMD算法在流体流动应用上的算法流程示意图<ref name=brunton_2022 />。图中左侧展示了一系列实验图像时间序列,即切片数据。时间t从上到下增加,表示流体流经圆柱体时的动态变化。有了这些数据作为输入,下图中间部分是拟合过程。我们可以直接通过最小二乘法拟合出线性迭代矩阵A。右侧则是DMD的输出。一方面我们可以预测系统未来的演化,更重要的,我们可以通过对矩阵A做特征值分解,得到Koopman特征值和特征函数的近似(理论见上文“Koopman模式分解”章节),从而可以把原本的动力学分解成几个主要的动力学模式。这些动力学模式分别提取出了原动力学中具有物理含义的结构,比如平均流场、不同尺度的涡旋等等。
 +
 +
 +
 +
 +
对角矩阵 <math>\boldsymbol{\Lambda}</math> 包含DMD特征值,它们对应于高维矩阵 <math>\mathbf{A}</math> 的特征值。<math>\mathbf{W}</math> 的列是 <math>\tilde{\mathbf{A}}</math> 的特征向量,并提供了一个使矩阵对角化的坐标变换。这些列可以被认为是POD模态振幅的线性组合,它们以由相应特征值 <math>\lambda</math> 给出的单一时间模式线性变化。 
 +
 +
<math>\mathbf{A}</math> 的特征向量是DMD模态 <math>\boldsymbol{\Phi}</math>,它们是使用简化系统的特征向量 <math>\mathbf{W}</math> 和时移数据矩阵 <math>\mathbf{X}'</math> 重构得到的: 
 +
 +
 +
 +
Tu等人 <ref>[435]</ref> 证明了在特定条件下这些DMD模态是完整矩阵 <math>\mathbf{A}</math> 的特征向量。这种方法在图3.1中针对流体流动进行了说明。此外还有几个开源的DMD实现 <ref>[225, 102]</ref>。
    
[[文件:DMD算法图3.1.png|500x500px|替代=]]
 
[[文件:DMD算法图3.1.png|500x500px|替代=]]
   −
1.组建切片数据<math>\mathbf{X}</math>和<math>\mathbf{X'}</math>。
+
1.组建切片数据<math>\mathbf{X}</math>和<math>\mathbf{X'}</math>。其中<math>\mathbf{X'}</math>表示<math>\mathbf{X}</math>数据下一时刻的切片数据。
    
2.计算<math>\mathbf{X}</math>的SVD(如果原系统维度很高,需要先进行低秩近似):<math> \mathbf{X} = \mathbf{U}\mathbf{Σ}\mathbf{V^*} </math>
 
2.计算<math>\mathbf{X}</math>的SVD(如果原系统维度很高,需要先进行低秩近似):<math> \mathbf{X} = \mathbf{U}\mathbf{Σ}\mathbf{V^*} </math>
   −
3.最小二乘法拟合<math> \tilde{A} </math>: <math> \tilde{A} = \mathbf{U^*} \mathbf{X'} \mathbf{V} \mathbf{Σ^{-1}} </math>。
+
3.最小二乘法拟合<math>\mathbf{A}</math>。不过借助于数据矩阵的SVD,我们可以用更小的<math> \tilde{\mathbf{A}} </math>来近似原矩阵。
 +
 
 +
<math>
 +
\begin{aligned} 
 +
\tilde{\mathbf{A}} &= \mathbf{U}_r^*\mathbf{A}\mathbf{U}_r \\
 +
&= \mathbf{U}_r^*\mathbf{X}'\mathbf{X}^\dagger\mathbf{U}_r \\
 +
&= \mathbf{U}_r^*\mathbf{X}'\mathbf{V}_r\boldsymbol{\Sigma}_r^{-1}\mathbf{U}_r^*\mathbf{U}_r \\
 +
&= \mathbf{U}_r^*\mathbf{X}'\mathbf{V}_r\boldsymbol{\Sigma}_r^{-1} 
 +
\end{aligned} 
 +
</math>
 +
 
 +
其中<math>\mathbf{U}_r, \mathbf{V}_r, \mathbf{Σ}_r</math>表示根据有效秩截取了前r个奇异值以及它对应的左右奇异向量。所以我们最终要计算的矩阵是<math> \tilde{\mathbf{A}} = \mathbf{U_r^*} \mathbf{X'} \mathbf{V_r} \mathbf{Σ_r^{-1}} </math>。
   −
4.求解<math> \tilde{A} </math>的特征值和特征向量: <math> \tilde{A} \omega  = \lambda \omega </math> 。
+
4.求解<math> \tilde{\mathbf{A}} </math>的特征值和特征向量: <math>\tilde{\mathbf{A}}\mathbf{W} = \mathbf{W}\boldsymbol{\Lambda}</math>   。
   −
5.DMD模态为:<math> \varphi = \frac {1} {\lambda}   \mathbf{X'} \mathbf{V} \mathbf{Σ^{-1}} \omega </math>。
+
5.DMD模态<math>\boldsymbol{\Phi}</math>定义为原迭代矩阵<math>\mathbf{A}</math>的特征向量,这样捕捉的正是物理系统中的时空相干结构。经过推导,它的计算方式为:<math>\boldsymbol{\Phi} = \mathbf{X}'\mathbf{V}_r\boldsymbol{\Sigma}_r^{-1}\mathbf{W}</math> 。
    
===例子===
 
===例子===
842

个编辑

导航菜单