向量到超平面的投影计算过程

由于最近要学习著名的Kaczmarz算法,其核心思想就是投影。为了更好的理解该算法,此文详细记录一下投影的推导过程。


Let's begin!


要计算向量 \(\mathbf{x}\in\mathbb{R}^n\) 到超平面 \(H=\{\mathbf{x}\in\mathbb{R}^n|\mathbf{a}^{\top}\mathbf{x}=b\}(\mathbf{a}\neq\mathbf{0})\)的投影 \(\mathbf{x}_{k+1}\),本质上是求解一个带约束的最小二乘问题。下面从 几何推导 和 拉格朗日乘数法 两个角度进行详细推导。

1. 几何直观推导
超平面的法向量为 \(\mathbf{a}\). 从点 \(\mathbf{x}_k\) 到超平面 \(H\) 的最短距离路径必然沿着法向量方向。因此,投影点 \(\mathbf{x}_{k+1}\) 可以写成:

\[\mathbf{x}_{k+1}=\mathbf{x}_{k}+\alpha\mathbf{a}, \]

其中 \(\alpha\in\mathbb{R}\) 是一个待定的标量(表示沿法向量移动的步长)。因为投影点 \(\mathbf{x}_{k+1}\) 必须满足超平面方程 \(\mathbf{a}^{\top}\mathbf{x}_{k+1}=b\) 代入上式得:

\[\mathbf{a}^{\top}(\mathbf{x}_{k}+\alpha\mathbf{a})=b, \]

展开:

\[\mathbf{a}^{\top}\mathbf{x}_{k}+\alpha\mathbf{a}^{\top}\mathbf{a}=b, \]

因为 \(\mathbf{a}^{\top}\mathbf{a}=\|\mathbf{a}\|_{2}^{2}\), 解得

\[\alpha=\frac{b-\mathbf{a}^{\top}\mathbf{x}_{k}}{\|\mathbf{a}\|_{2}^{2}}, \]

将上述 \(\alpha\) 代回,即得到投影公式

\[\boxed{\mathbf{x}_{k+1}=\mathbf{x}_{k}+\frac{b-\mathbf{a}^{\top}\mathbf{x}_{k}}{\|\mathbf{a}\|_{2}^{2}}\mathbf{a}.} \]

2. 拉格朗日乘数法 (最严谨)
将该投影问题写成标准的约束优化形式:

\[\min_{\mathbf{x}\in\mathbb{R}^{n}} \frac{1}{2}\|\mathbf{x}-\mathbf{x}_{k}\|_{2}^{2},\qquad s.t.\quad \mathbf{a}^{\top}\mathbf{x}=b. \]

构造拉格朗日函数\(L(\mathbf{x},\lambda)\):

\[L(\mathbf{x},\lambda)=\frac{1}{2}\|\mathbf{x}-\mathbf{x}_{k}\|_{2}^{2}+\lambda(\mathbf{a}^{\top}\mathbf{x}-b), \]

其中 \(\lambda\in\mathbb{R}\) 是拉格朗日乘子。令 \(L\) 对 \(\mathbf{x}\) 的梯度为零:

\[\nabla_{\mathbf{x}}L(\mathbf{x},\lambda)=\mathbf{x}-\mathbf{x}_{k}+\lambda\mathbf{a}=\mathbf{0}, \]

得:

\[\mathbf{x}=\mathbf{x}_{k}-\lambda\mathbf{a}. \]

再将上式代入约束条件 \(\mathbf{a}^{\top}\mathbf{x}=b\), 得

\[\mathbf{a}^{\top}\mathbf{x}_{k}-\lambda\|\mathbf{a}\|_{2}^{2}=b, \]

所以

\[\lambda=\frac{\mathbf{a}^{\top}\mathbf{x_{k}}-b}{\|\mathbf{a}\|_{2}^{2}}. \]

整理得:

\[\boxed{\mathbf{x}_{k+1}=\mathbf{x}_{k}+\frac{b-\mathbf{a}^{\top}\mathbf{x}_{k}}{\|\mathbf{a}\|_{2}^{2}}\mathbf{a}.} \]

posted @ 2026-08-26 13:52  xustonexin  阅读(37)  评论(0)    收藏  举报