目录

设计矩阵 (Design Matrix)

N 个点、p 个未知数,怎么组织才不乱?回到最小二乘的场景:有 N 个数据点 (xᵢ, yᵢ),选了 p 个基函数 φ₁, φ₂, …, φₚ。模型要求对每一个点都成立: \begin{equation} \begin{cases} y₁ ≈ β₁φ₁(x₁) + β₂φ₂(x₁) + … + βₚφₚ(x₁)\\ y₂ ≈ β₁φ₁(x₂) + β₂φ₂(x₂) + … + βₚφₚ(x₂) \\ …… \\ yₙ ≈ β₁φ₁(xₙ) + β₂φ₂(xₙ) + … + βₚφₚ(xₙ) \end{cases} \end{equation} 这是一个超定方程组:N 个方程(通常 N ≫ p),只有 p 个未知数 βⱼ。逐个方程看会晕——需要一种方式把整堆方程当成一个数学对象来操作。

设计矩阵:把方程组压成一条式子

把所有已知信息堆进一张表——设计矩阵 X(N 行 p 列):

\begin{equation} X[i][j] = φⱼ(xᵢ) \end{equation}

第 i 行 = 第 i 个数据点上所有基函数的取值;第 j 列 = 第 j 个基函数在所有数据点上的取值。

于是 N 个方程变成一条矩阵方程:

\begin{equation} y ≈ Xβ \end{equation}

拟合问题从此变成纯线性代数:在 β 的所有取值里,找让 Xβ 最接近 y 的那个。残差向量 r = y − Xβ 的范数就是拟合误差——最小二乘 min ‖y − Xβ‖² 就是“让残差向量最短”。

为什么叫"设计矩阵"

名字来自统计学的实验设计:研究者“设计”实验时,X 的每一行就是一次实验的配置(各因素取什么值)。在拟合里,“设计”的是基函数在数据点上的取值表。它编码了模型的全部已知信息——选了什么基、数据点在哪、每个点的自变量是多少,全在这一张表里。

行视角与列视角

* 行视角:每个数据点 xᵢ 被表示成一个 p 维“特征向量” (φ₁(xᵢ), …, φₚ(xᵢ))。N 个点 = N 个特征向量 * 列视角:每列是一个基函数“采样后的波形”。X 的 p 列在 N 维空间里张成一个 p 维子空间

两个视角对应投影图像:y 是 N 维空间里的一个点,X 的列张成“模型子空间”,拟合 = 把 y 投影到这个子空间上,β̂ 就是投影的坐标。

由 X 派生出的关键矩阵

* XᵀX(p×p):基函数之间的内积矩阵(Gram 矩阵),第 (j,k) 元 = Σᵢ φⱼ(xᵢ)φₖ(xᵢ),衡量两个基函数在数据点上的相关性。它可逆 ⟺ 基函数在数据点上线性无关 * 正规方程: (XᵀX)β = Xᵀy,就是“残差 ⊥ 列空间”的代数翻译 * 病态情形:XᵀX 病态/奇异 ⟺ 基函数高度相关或数据不足 ⟺ 解不稳定或不唯一 → 正则化登场

特殊情况

* p = N(基函数数和数据点数相等,X 是方阵):方程组可解,Xβ = y 精确成立——这就是插值(严格过每个点) * p > N(未知数多于方程,欠定):解不唯一,需要额外约束 * 多元情形:x 是多维向量,X[i][j] = φⱼ(xᵢ) 形式不变,只是 φⱼ 作用在多维输入上——同一套理论照用

总结

设计矩阵 = 把“模型假设 + 基函数选择 + 数据位置”全部装进一张表的账本。拟合的全部数学就是对这本账做线性代数:投影(求 β̂)、正交性(正规方程)、相关性(XᵀX)——理解了 X,最小二乘那节剩下的公式就都是它的展开。

数学,数值分析,数值逼近,设计矩阵