非线性动力学的稀疏识别算法:原理、应用与拓展
1. 引言
在数学物理领域,从数据中发现动力系统模型是一项核心挑战。传统上,这一过程依赖高质量的测量和专家直觉。如今,随着数据量的剧增和计算能力的提升,自动发现控制方程和动力系统成为了一种令人兴奋的科学范式。
2. 稀疏识别非线性动力学(SINDy)算法
2.1 算法背景
许多动力系统的右侧函数空间中,只有少数活跃项。例如,洛伦兹方程每个方程中只有几个线性和二次交互项。SINDy算法利用这一特性,绕过了对所有可能模型结构的组合搜索。
2.2 算法步骤
- 数据收集与矩阵构建
- 从动力系统 $\frac{d}{dt}x = f(x)$ 收集时间序列数据,形成数据矩阵 $X = [x(t_1), x(t_2), \cdots, x(t_m)]^T$。
- 构建相应的导数矩阵 $\dot{X} = [\dot{x}(t_1), \dot{x}(t_2), \cdots, \dot{x}(t_m)]^T$。对于噪声数据,总变差正则化导数能提供数值稳健的导数。
- 候选非线性函数库构建
从数据矩阵 $X$ 构建候选非线性函数库 $\Theta(X) = [1, X, X^2, \cdots, X^d, \cdots, \sin(X), \cdots]$,其中 $X^d$ 表示由状态 $x$ 的 $d$ 次多项式的所有可能时间序列构成的矩阵。
超级会员免费看
订阅专栏 解锁全文
2208

被折叠的 条评论
为什么被折叠?



