更改

跳到导航 跳到搜索
删除3,780字节 、 2025年11月4日 (二) 15:53
第244行: 第244行:     
动力学模式分解是对Koopman模式分解的一种近似。这意味着,DMD的特征值将近似Koopman算子的特征值,DMD中的模式将近似Koopman算子的模式,DMD中的振幅将近似Koopman算子特征函数在初始条件下的取值。
 
动力学模式分解是对Koopman模式分解的一种近似。这意味着,DMD的特征值将近似Koopman算子的特征值,DMD中的模式将近似Koopman算子的模式,DMD中的振幅将近似Koopman算子特征函数在初始条件下的取值。
−
  −
\documentclass[12pt]{article}
  −
\usepackage[utf8]{inputenc}
  −
\usepackage[T1]{fontenc}
  −
\usepackage{amsmath, amssymb, amsthm}
  −
\usepackage{graphicx}
  −
\usepackage{xcolor}
  −
\usepackage{enumitem}
  −
\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry}
  −
\setlength{\parindent}{0pt}
  −
\setlength{\parskip}{1em}
  −
\newcommand{\vecx}{\mathbf{x}}
  −
\newcommand{\matA}{\mathbf{A}}
  −
\newcommand{\matAt}{\tilde{\mathbf{A}}}
  −
\newcommand{\matU}{\mathbf{U}}
  −
\newcommand{\matV}{\mathbf{V}}
  −
\newcommand{\matS}{\mathbf{\Sigma}}
  −
\newcommand{\matPhi}{\mathbf{\Phi}}
  −
\newcommand{\matW}{\mathbf{W}}
  −
\newcommand{\matL}{\mathbf{\Lambda}}
  −
\newcommand{\matX}{\mathbf{X}}
  −
\newcommand{\matXp}{\mathbf{X'}}
  −
\newcommand{\hermitian}{^*}
  −
  −
\title{动态模分解 (DMD) 算法详解 \\ {\large 基于 Koopman 理论}}
  −
\author{小白指南}
  −
\date{}
  −
  −
\begin{document}
  −
  −
\maketitle
  −
  −
\section{核心思想:Koopman 算子}
  −
  −
Koopman 算子提供了一个分析非线性动力学的革命性视角:
  −
  −
\begin{itemize}
  −
    \item \textbf{传统视角:} 直接观察系统状态 $\vecx(t)$ 的演化,其动力学通常是非线性的:$\vecx_{k+1} = f(\vecx_k)$。
  −
    \item \textbf{Koopman 视角:} 不直接看状态本身,而是去观察系统的\textbf{观测函数} $g(\vecx)$。在这个由观测函数张成的无限维空间上,系统的演化是\textbf{线性的},由一个线性算子 $\mathcal{K}$(即 Koopman 算子)描述:
  −
    \[
  −
    \mathcal{K} g(\vecx_k) = g(f(\vecx_k)) = g(\vecx_{k+1})
  −
    \]
  −
\end{itemize}
  −
  −
动态模分解 (DMD) 是 Koopman 算子的一种数据驱动的、有限维近似方法。
  −
  −
\section{DMD 算法详细步骤}
  −
  −
假设我们有一系列按时间排列的数据快照 $\{\vecx_1, \vecx_2, \dots, \vecx_{m+1}\}$,其中 $\vecx_k \in \mathbb{R}^n$。目标是找到一个矩阵 $\matA$ 使得 $\vecx_{k+1} \approx \matA \vecx_k$。
  −
  −
\subsection{步骤 1:组建数据矩阵}
  −
构建两个数据矩阵:
  −
\[
  −
\matX = [\vecx_1\ \vecx_2\ \cdots\ \vecx_m], \quad \matXp = [\vecx_2\ \vecx_3\ \cdots\ \vecx_{m+1}]
  −
\]
  −
目标关系为:
  −
\[
  −
\matXp \approx \matA \matX
  −
\]
  −
  −
\subsection{步骤 2:奇异值分解 (SVD)}
  −
对矩阵 $\matX$ 进行截断的 SVD(取秩 $r$):
  −
\[
  −
\matX \approx \matU_r \matS_r \matV_r\hermitian
  −
\]
  −
其中 $\matU_r \in \mathbb{R}^{n \times r}$, $\matS_r \in \mathbb{R}^{r \times r}$, $\matV_r \in \mathbb{R}^{m \times r}$,且 $\matU_r\hermitian \matU_r = \matV_r\hermitian \matV_r = \mathbf{I}_r$。
  −
  −
\subsection{步骤 3:在降维空间计算 $\matAt$}
  −
将高维算子 $\matA$ 投影到 SVD 得到的低维空间上,得到简化算子 $\matAt$:
  −
\[
  −
\matAt = \matU_r\hermitian \matA \matU_r = \matU_r\hermitian \matXp \matV_r \matS_r^{-1}
  −
\]
  −
$\matAt \in \mathbb{R}^{r \times r}$ 是 $\matA$ 的低秩近似。
  −
  −
\subsection{步骤 4:特征分解}
  −
求解简化系统 $\matAt$ 的特征值和特征向量:
  −
\[
  −
\matAt \matW = \matW \matL
  −
\]
  −
其中 $\matL$ 是对角矩阵,其对角线元素为特征值 $\lambda_i$,$\matW$ 的列是对应的特征向量。
  −
  −
\subsection{步骤 5:重建 DMD 模式}
  −
将降维空间的特征向量 $\matW$ 映射回原始状态空间,得到 DMD 模式 $\matPhi$:
  −
\[
  −
\matPhi = \matXp \matV_r \matS_r^{-1} \matW
  −
\]
  −
$\matPhi$ 的每一列是一个 DMD 模式,代表了数据中一种特定的空间结构。
  −
  −
\subsection{步骤 6:预测与重构}
  −
任何时刻的状态可由 DMD 模式的线性组合来重构:
  −
\[
  −
\vecx_k \approx \matPhi \matL^{k-1} \vecb
  −
\]
  −
其中振幅向量 $\vecb$ 由初始条件确定:$\vecb = \matPhi^{\dagger} \vecx_1$($^{\dagger}$ 表示 Moore-Penrose 伪逆)。
  −
  −
\section{简单示例:叠加正弦波}
  −
  −
考虑一个一维信号,由两个衰减正弦波叠加而成:
  −
\[
  −
x(t) = 2 e^{-0.1 t} \sin(2\pi \cdot 1 \cdot t) + 0.5 e^{-0.5 t} \sin(2\pi \cdot 5 \cdot t)
  −
\
      
==扩展DMD==
 
==扩展DMD==
235

个编辑

导航菜单