什么是数据矩阵分解? #
数据矩阵 #
数据分解针对的是空间、时间相关的物理量的演化的数据分析问题。 我们可以约定采用矩阵$D$的方式来表达场数据,矩阵的行约定为空间位置,列约定为时间点。 矩阵的元素$D_{i,j}$表示在时间点$t_j$时,空间位置$p_i$的物理量。
空间位置 #
空间位置可以是1D、2D、3D的坐标,是时空场数据的行, 用$p_i$表示。
$$ p_i = \begin{cases} x_i, & \text{1D} \\ (x_i, y_i), & \text{2D} \\ (x_i, y_i, z_i), & \text{3D} \end{cases} $$时间点 #
时间点是时空场数据的列,用$t_j$表示。 一个数据矩阵的一个完整的列$D(:,m)$,称为一个时刻$t_m$的快照(snapshot)。
数据矩阵的秩 #
数据矩阵的一个重要特征就是矩阵的秩(rank),这个参数描述了矩阵行或者列的线性独立特性。 当数据矩阵的大小为$n_p \times n_t $时, 如果矩阵的秩等于$\min(n_p, n_t)$,称为满秩; 如果矩阵的秩小于$\min(n_p, n_t)$, 则矩阵中有行(列)可以表示为其它行(列)的线性组合。
对于一般的物理问题中,我们会假设$n_p \gg n_t$,也就是空间点数目远大于时间点数目。 这中情况下,满秩的数据矩阵的秩等于$n_t$。
这里所指称的数据分解,就是采用某种方式,将数据矩阵表达为线性无关的基的线性组合。
数据矩阵分解 #
对于一个数据矩阵$D$,我们希望将其分解为三个矩阵的乘积,即
$$ D = A B C $$显然,这种分解如果没有额外的约束,可以有无数种分解方式。 那么对于不同的分解方式,如何理解和选择分解的基矩阵$A$、$B$、$C$, 是数据矩阵分解的关键问题。
常规的考虑,所有的分解都有下面的性质,$A$的行数与$D$相同,而$C$的列数与$D$相同。 因此分解的矩阵有明确的物理含义:
- $A$:模态形状矩阵,描述了物理量在空间分布的模态
- $C$: 时间结构矩阵,描述了物理量在时间演化的动态特性
- $B$: 增益矩阵,描述了各个模态和动态特性的相对重要性