The Application of Dynamic Mode Decomposition Method in Nonlinear Dynamic Problems
This article introduces the application of dynamic mode decomposition method in nonlinear dynamic problems. Dynamic mode decomposition method is a method for implementing numerical computation of the Koopman operator, which transforms nonlinear problems in finite dimensional space into linear problems in infinite dimensional space. This article mainly introduces the latest computational methods for solving nonlinear problems, which helps guide students to break the traditional iterative thinking of solving nonlinear problems and cultivate their algorithm innovation abilities.
Dynamic Mode Decomposition
针对非线性动态系统:
其中 代表状态空间,f是 的一个非线性映射。
对任意的标量值观测函数 ,Koopman算子 的定义如下:
(2)
Koopman算子 是一个无穷维的算子,它作用在观测函数g上,其中 , 是一个希尔伯空间。Koopman算子 是线性的,即
在Koopman算子的作用下,有限维的非线性动态系统(1)转化为无穷维的线性系统(2)。显然数值计算无穷维的算子 是不可能的,为了实现数值计算,我们在有限维的不变子空间中考虑Koopman算子。
设 是Koopman算子的一个不变子空间,即
其中, 是由观测函数 张成的空间。令 是一个向量值观测函数,则Koopman算子作用在 上,有
对矩阵 进行特征分解,可得
其中, 和 分别是矩阵 对应于特征值 的左特征向量和右特征向量。
不妨设 和矩阵 有N个线性无关的特征向量,则对任意的观测函数 ,有
其中 。注意到
所以 是Koopman算子 的特征函数。对于一个时间序列,我们有
(3)
在方程(3)上作用Koopman算子可得
(4)
利用数据 和构成Koopman算子不变子空间的函数 ,通过动态模态分解方法数值求解Koopman算子的特征值和特征向量。假设我们通过实验获取快照序列数据 ,给定观测函数 ,定义以下两个数据矩阵 和 :
定义矩阵 为:
其中 是矩阵 的Moore-Penrose伪逆。矩阵 的特征值和特征向量称为动态模态分解(DMD)的特征值和模态。
通常情况下,由于Koopman算子不变子空间的维度N较高,导致直接计算矩阵
的特征值和特征向量计算成本昂贵。Tu等人
Exact DMD方法的主要步骤如下:
1. 首先,对矩阵 进行奇异值分解:
其中
,
,
,r为截断秩,利用硬阈值方法
2. 其次,计算矩阵 在本征正交分解模态下的投影矩阵 ,其中
3. 再次,对矩阵 进行特征分解,得到特征值和左、右特征向量,
其中矩阵 的列向量对应于矩阵 的右特征向量,矩阵 的列向量对应于矩阵 的左特征向量,矩阵 是一个对角矩阵,对角线元素为矩阵 的特征值 。
4. 然后,从矩阵 , 和 中得到矩阵 的特征向量和特征值。实际上, 也是矩阵 的特征值,矩阵 的特征向量计算方式如下:
其中矩阵 ,矩阵 的列向量对应于矩阵 的右特征向量,矩阵 的列向量对应于矩阵 的左特征向量。
5. 接着,对未来观测状态的预测可以通过以下公式得到:
(5)
其中 。
6. 最后,返回到对状态变量x的预测:
(6)
(a) 给定初始值 以及容忍度
(b) 计算
(c) 当 时,令 代入步骤(b)继续计算,直到 停止,此时令 ,即为非线性问题 在第 时刻的解 。
我们通过下面的例子来阐述Koopman算子是如何把非线性问题转化为线性问题,并展示利用动态模态分解方法求解非线性问题的数值结果。
例1 考虑如下的动态系统:
对于上述动态系统(7),易知 张成了Koopman算子的不变子空间,这是因为
(8)
这样将非线性动态系统(7)转换为线性问题(8),之后利用动态模态分解方法求解得到x和y在任意时刻的状态,无需求解原非线性系统(7)。我们用此例说明了Koopman算子可以把非线性问题转化为线性问题。接下来,我们利用动态模态分解方法实现对x和y随时间变化的模拟。在动态模态分解方法中,我们可以不知道方程(7)和方程(8)的具体形式,仅仅只需要状态 在不同时刻的值,从而形成两个数据矩阵 和 :
,
将数据矩阵
和
输入到Exact DMD算法中,最后利用公式(5)可得状态
在不同时刻的值,进而可知x和y在不同时刻的值。
数学的多种求解方法培养了学生的发散性思维,同时也激发了学生从不同角度探讨问题的兴趣。良好的数学思维对于学生各方面的学习都起到较为重要的作用。因此,培养学生从不同角度思考问题可以提高学生的思维能力。
1) 江苏省基础研究计划自然科学基金——青年基金项目(No. BK20230346);
2) 南京邮电大学引进人才科研启动基金项目(自然科学) (No. NY222063)。