更改

跳到导航 跳到搜索
添加4,962字节 、 2025年11月4日 (二) 15:15
第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)
 +
\]
 +
 +
\subsection{应用 DMD}
 +
\begin{enumerate}
 +
    \item \textbf{采样:} 以 100 Hz 频率采样,得到数据快照 $\vecx_k = x(t_k)$。
 +
    \item \textbf{构建 $\matX, \matXp$}。
 +
    \item \textbf{SVD:} 由于主导动态只有两个,取 $r=2$。SVD 将识别出两个主要模式。
 +
    \item \textbf{计算 $\matAt$ 和特征值:} 会得到两个特征值 $\lambda_1, \lambda_2$。从其幅角和幅值可解码动态:
 +
        \begin{align*}
 +
            \omega_1 &= \frac{\text{angle}(\lambda_1)}{2\pi \Delta t} \approx 1 \text{ Hz} \\
 +
            \omega_2 &= \frac{\text{angle}(\lambda_2)}{2\pi \Delta t} \approx 5 \text{ Hz} \\
 +
            \text{衰减率}_1 &= \frac{\log(|\lambda_1|)}{\Delta t} \approx -0.1 \\
 +
            \text{衰减率}_2 &= \frac{\log(|\lambda_2|)}{\Delta t} \approx -0.5
 +
        \end{align*}
 +
    \item \textbf{DMD 模式:} $\matPhi$ 中的两列将分别近似于纯净的 $1$ Hz 和 $5$ Hz 衰减正弦波。
 +
    \item \textbf{振幅:} 初始振幅 $\vecb$ 的计算结果将接近 $[2, 0.5]^T$。
 +
\end{enumerate}
 +
 +
DMD 成功地从混合信号中分离出了频率、衰减率和振幅这两个独立的动态模式。
 +
 +
\end{document}
    
==扩展DMD==
 
==扩展DMD==
235

个编辑

导航菜单