线性代数 - 正交与投影

105

向量的正交

什么是向量的正交?观察下图中的两对向量,猜猜哪一对是正交?

图1 - 猜猜哪个是正交?

请选择你的答案: $(A)$   $(B)$       

证明:当两个向量 $\mathbf{u}$ 和 $\mathbf{v}$ 垂直时,$\mathbf{u}\cdot\mathbf{v} = \mathbf{0}$
因为 $\mathbf{u} \perp \mathbf{v}$,所以它们的夹角等于 $90^{\circ}$,根据点积公式:$\mathbf{u} \cdot \mathbf{v} = \left\| \mathbf{u} \right\| \left\| \mathbf{v} \right\| \cos\theta = \left\| \mathbf{u} \right\| \left\| \mathbf{v} \right\| \cos 90^{\circ} = \mathbf{0} $
 

正如上图 $(A)$ 所示的一样,如果两个向量垂直,我们就说这两个向量正交Orthogonal)。由于相互垂直的两个向量点积为 $0$(为什么?),因此两个向量正交也可以定义为:


定义 当两个向量 $\mathbf{u}$、$\mathbf{v}$ 的点积 $\mathbf{u} \cdot \mathbf{v} = \mathbf{0}$ 时,称 $\mathbf{u}$ 与 $\mathbf{v}$ 正交,记为 $\mathbf{u} \perp \mathbf{v}$。

零向量 $\mathbf{0}$ 与任何向量的点积都为 $0$,因此零向量与任何向量都正交。

为了书写和阅读方便,我们通常用 $\mathbf{u}^T \mathbf{v}$ 代替 $\mathbf{u} \cdot \mathbf{v}$,这样可以省略中间的点。

正交向量有什么性质呢?请看下图:

图2 - 正交向量的性质

显然图中红、蓝、绿三边的长度满足勾股定理(也称毕达哥拉斯定理),即:


\begin{align*} \left\| \mathbf{a} \right\|^2 + \left\| \mathbf{b} \right\|^2 = \left\| \mathbf{a} + \mathbf{b} \right\|^2 \\ \left\| \mathbf{a} \right\|^2 + \left\| \mathbf{b} \right\|^2 = \left\| \mathbf{a} - \mathbf{b} \right\|^2 \\ \left\| \mathbf{a} \right\|^2 + \left\| \mathbf{b} \right\|^2 = \left\| \mathbf{b} - \mathbf{a} \right\|^2 \end{align*}

上面的三个子式,也可以通过代数式来证明(这里仅证明第一个,其他两个请读者自行证明):


\begin{align*} \left\| \mathbf{a} + \mathbf{b} \right\|^2 &= (\mathbf{a} + \mathbf{b})^T (\mathbf{a} + \mathbf{b}) \\ &= \mathbf{a}^2 + \color{red}{\mathbf{a}^T\mathbf{b}} + \color{blue}{\mathbf{b}^T \mathbf{a}} + \mathbf{b}^2 \\ &= \left\| \mathbf{a} \right\|^2 + \color{red}{0} + \color{blue}{0} + \left\| \mathbf{b} \right\|^2 \\ &= \left\| \mathbf{a} \right\|^2 + \left\| \mathbf{b} \right\|^2 \end{align*}

举个向量正交的例子:


判断 $\mathbf{u} = (1,3,2)$ 与 $\mathbf{v} = (-2, 0, 1)$ 是否正交。

解:$\mathbf{u}^T \mathbf{v} = \begin{bmatrix} 1&3&2 \end{bmatrix} \begin{bmatrix} -2\\0\\1 \end{bmatrix} = 0$,因此 $\mathbf{u}$ 与 $\mathbf{v}$ 正交。

最后来做个练习吧!


练习 以下哪个向量与 $(2,4,3)$ 正交?
  A $(1,2,3)$      B $(3,2,1)$      C $(-1,-1,2)$      D $(1,1,1)$
正确答案为 C,只有 $(-1,-1,2)$ 与 $(2,4,3)$ 作点积才能等于 $0$。

子空间的正交

两个子空间的正交是两个向量正交的扩展,它的定义为:


定义 假设 $U$ 和 $V$ 是两个子空间,如果对于 $U$ 中的任意向量 $\mathbf{u} \in U$,以及 $V$ 中的任意向量 $\mathbf{v} \in V$,都有 $$\mathbf{u}^T\mathbf{v} = 0$$ 则称子空间 $U$ 和 $V$ 正交,记为 $U \perp V$。

举个最简单的例子,比如 $xy$ 平面中的两条直线:

图3 - 正交子空间(二维)

$2x-y=0$ 与 $x+2y=0$ 分别表示 $\mathbb{R}^2$ 下的两个子空间 $U = \{ c_1 \begin{bmatrix} 1\\2 \end{bmatrix} , c_1 \in \mathbb{R} \}$ 和 $V = \{ c_2 \begin{bmatrix} 2\\-1 \end{bmatrix}, c_2 \in \mathbb{R} \}$。考虑 $U$ 中的任意一个向量 $\mathbf{u} \in U$ 与 $V$ 中任意一个向量 $\mathbf{v} \in V$ 的点积:


$$\mathbf{u}^T \mathbf{v} = \begin{bmatrix} c_1 & 2c_1 \end{bmatrix} \begin{bmatrix} 2c_2 \\ -c_2 \end{bmatrix} = 2c_1c_2 - 2c_1c_2 = 0$$

可见 $U$ 中的任意一个向量都与 $V$ 中的任意一个向量正交,因此子空间 $U$ 和 $V$ 正交。通过这个例子,相信读者已经明白两个子空间正交的几何含义了(不就是垂直嘛 ^_^)。


思考题 本例中的两条直线是过原点的,那么不过原点的两条直线能否成为正交子空间呢?(答案

不能!因为子空间必须包含零向量!不包含零向量的向量集连子空间都不是,更谈不上正交了。

上面是二维向量空间 $\mathbb{R}^2$ 中两个子空间正交的例子,下面我们将二维空间提升到三维空间。首先是三维空间中的两条直线:

图4 - 正交子空间 - 线线(三维)

这个例子与二维空间中的两条直线类似,$x=-2y=2z$ 表示子空间 $U = \{ c_1 \begin{bmatrix} 2\\-1\\1 \end{bmatrix} , c_1 \in \mathbb{R} \}$,而 $x=y=-z$ 表示子空间 $V = \{ c_2 \begin{bmatrix} 1 \\ 1 \\ -1 \end{bmatrix}, c_2 \in \mathbb{R} \}$,任一属于 $U$ 的向量 $\mathbf{u} \in U$ 与任一属于 $V$ 的向量 $\mathbf{v} \in V$ 的点积为:


$$ \mathbf{u}^T \mathbf{v} = \begin{bmatrix} 2c_1 & -c_1 & c_1 \end{bmatrix} \begin{bmatrix} c_2 \\ c_2 \\ -c_2 \end{bmatrix} = 2c_1c_2 - c_1c_2 - c_1c_2 = 0 $$

由此可知 $U \perp V$。

现在考虑一个问题,两个正交的子空间有没有交点?交点是什么?答案是显而易见的,两个子空间有交点,交点就是零向量。假设两个子空间 $U$ 和 $V$ 的交点为 $\mathbf{p}$,由于 $\color{red}{\mathbf{p}} \in U $ 并且 $\color{blue}{\mathbf{p}} \in V$,因此有 $\color{red}{\mathbf{p}}^T \color{blue}{\mathbf{p}} = 0$,即 $\left\| \mathbf{p} \right\|^2 = 0$,得 $\mathbf{p} = \mathbf{0}$。由此我们可以得出结论:两平面正交,交点必为零向量 $\mathbf{0}$。

再来看一个复杂点的例子,三维空间中的直线与平面:

图5 - 正交子空间 - 线面(三维)

上图是一个 $\mathbb{R}^3$ 空间,其中包含了一条直线 $x=y=-z$ 和一个平面 $x+y-z=0$,首先我们用向量集来表示它们:

$x=y=-z$ 的解集为 $U = \{ c_1 \begin{bmatrix} 1\\1\\-1 \end{bmatrix}, c_1 \in \mathbb{R} \}$。由于 $\mathbf{0} \in U$,并且 $U$ 对向量的加法与数乘闭包,因此 $U$ 是 $\mathbb{R}^3$ 的子空间。

$x+y-z=0$ 的解集为 $V = \{ c_2 \begin{bmatrix} -1\\1\\0 \end{bmatrix} + c_3 \begin{bmatrix} 1 \\ 0 \\ 1 \end{bmatrix}, c_2,c_3 \in \mathbb{R} \}$。由于 $\mathbf{0} \in V$,并且 $V$ 对向量的加法与数乘闭包,因此 $V$ 也是 $\mathbb{R}^3$ 的子空间。

下面我们判断子空间 $U$ 和 $V$ 的正交性Orthogonality)。根据子空间正交的定义,取 $U$ 中的任一向量 $\mathbf{u} \in U$,以及 $V$ 中的任一向量 $\mathbf{v} \in V$,判断它们的点积是否为 $0$:


$$ \mathbf{u}^T \mathbf{v} = \begin{bmatrix} c_1 & c_1 & -c_1 \end{bmatrix} \begin{bmatrix} -c_2 + c_3 \\ c_2 \\ c_3 \end{bmatrix} = -c_1c_2 + c_1c_3 + c_1c_2 - c_1c_3 = 0 $$

由此可见 $U$ 中的任一向量与 $V$ 中的任一向量正交,即子空间 $U$ 与 $V$ 正交。

接下来我们考虑一下 $\mathbb{R}^3$ 中的两个平面是否可以正交呢?答案是 No!两平面相交为一条直线,不符合上面我们得出的结论:两平面正交,交点必为零向量。还可以举出一些反例,比如:假设两个平面 $A$ 和 $B$ 相较于直线 $L$,那么 $A$ 中平行于交线 $L$ 的向量与 $B$ 中不平行于 $L$ 也不垂直于 $L$ 的向量并不正交。

那么 $\mathbb{R}^3$ 中的直线 $L$ 与 $\mathbb{R}^3$ 本身是否可以正交呢?呃…,这是不可能的, $\mathbb{R}^3$ 中与 $L$ 正交的向量只能是一个平面,而 $\mathbb{R}^3$ 却包含了无数个平面。

同样的,$\mathbb{R}^3$ 中的平面与 $\mathbb{R}^3$ 本身也无法正交。$\mathbb{R}^3$ 与它本身也无法正交。

于是我们得到一个结论:$\mathbb{R}^n$ 中两个正交的子空间 $U$、$V$ 的维数之和小于或等于 $n$,即 $\dim{(U)} + \dim{(V)} \leqslant n $ 。


练习 下面的说法正确的是:
  A、零向量 $\mathbf{0}$ 与 $\mathbb{R}^3$ 中过原点的直线正交。
  B、零向量 $\mathbf{0}$ 与 $\mathbb{R}^3$ 中过原点的平面正交。
  C、零向量 $\mathbf{0}$ 与 $\mathbb{R}^3$ 正交。
  D、以上答案都正确。
正确答案为 D,零向量与任何向量的点积都为零,因此它与 $\mathbb{R}^3$ 中的任何子空间都正交。当然,零向量与它本身也是正交的。

正交补

现在再来考虑我们已经见过多次的方程组:$\mathbf{A}\mathbf{x}=\mathbf{0}$,其中 $\mathbf{A}$ 是一个 $m \times n $ 的矩阵。看到等号右边的零向量 $\mathbf{0}$ 了吗?将它展开:


$$\mathbf{0} = \begin{bmatrix} 0 \\ 0 \\ \vdots \\0 \end{bmatrix}$$

可以看到它是由若干个 $0$ 组成的,Right?是不是觉得它很亲切呢?$0$ 不就是两个正交向量的点积嘛!那么这里的 $0$ 究竟是不是两个正交向量的点积呢?我们将 $\mathbf{A} \mathbf{x} = \mathbf{0}$ 展开:


$$ \begin{bmatrix} \mathbf{r}_1 \\ \mathbf{r}_2 \\ \vdots \\ \mathbf{r}_m \end{bmatrix} \begin{bmatrix} \mathbf{x} \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ \vdots \\0 \end{bmatrix} \Longrightarrow \begin{bmatrix} \mathbf{r}_1 \mathbf{x} \\ \mathbf{r}_2 \mathbf{x} \\ \vdots \\ \mathbf{r}_m \mathbf{x} \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ \vdots \\0 \end{bmatrix} $$

可以看到 $0$ 正是 $\mathbf{A}$ 的行向量与方程组的解 $\mathbf{x}$ 的点积,即 $\mathbf{A}$ 的行向量与 $\mathbf{x}$ 正交。现在考虑 $\mathbf{r}_i$($i=1,2,\cdots,m$)和 $\mathbf{x}$ 都是什么?$\mathbf{r}_i$ 是不是 $\mathbf{A}$ 的行空间里的向量呢?然也!$\mathbf{x}$ 是不是 $\mathbf{A}$ 的零空间里的向量呢?然也!即:$\mathbf{r}_i \in R(\mathbf{A})$ 并且 $\mathbf{x} \in N(\mathbf{A})$。更进一步地就会想到,既然 $\mathbf{r}_i$ 与 $\mathbf{x}$ 正交,那么是不是 $R(\mathbf{A})$ 与 $N(\mathbf{A})$ 也是正交的呢?我们来验证一下:假设 $\mathbf{u}$ 是 $R(\mathbf{A})$ 中的任一向量,即 $\mathbf{u} = c_1 \mathbf{r}_1 + c_2 \mathbf{r}_2 + \cdots + c_m \mathbf{r}_m$($c_i \in \mathbb{R}$,$i=1,2,\cdots,m$),$\mathbf{v}$ 是 $N(\mathbf{A})$ 中的任一向量,即 $\mathbf{v} = d \mathbf{x} $($d \in \mathbb{R}$),则它们的点积为(注意这里 $\mathbf{u}$ 是行向量,因此 $\mathbf{u}$ 与 $\mathbf{v}$ 的点积为 $\mathbf{u}\mathbf{v}$ 而不是 $\mathbf{u}^T\mathbf{v}$):


\begin{align*} \mathbf{u} \mathbf{v} &= (c_1 \mathbf{r}_1 + c_2 \mathbf{r}_2 + \cdots + c_m \mathbf{r}_m) d \mathbf{x} \\ &= c_1 d \mathbf{r}_1 \mathbf{x} + c_2 d \mathbf{r}_2 \mathbf{x} + \cdots + c_m d \mathbf{r}_m \mathbf{x} \\ &= 0 + 0 + \cdots + 0 \\ &= 0 \end{align*}

由此可见 $\mathbf{A}$ 的行空间 $R(\mathbf{A})$ ($R(\mathbf{A}) \subseteq \mathbb{R}^n$)与 $\mathbf{A}$ 的零空间 $N(\mathbf{A})$($N(\mathbf{A}) \subseteq \mathbb{R}^n$)在 $\mathbb{R}^n$ 下正交。

OK,现在提问:

(1)是不是所有正交于 $R(\mathbf{A})$ 的向量都属于 $N(\mathbf{A})$ 呢?
(2)是不是所有正交于 $N(\mathbf{A})$ 的向量都属于 $R(\mathbf{A})$ 呢?

首先回答(1):假设向量 $\mathbf{y}$ 正交于 $R(\mathbf{A})$,但是 $\mathbf{y} \not\in N(\mathbf{A})$ 。则有如下推演:

因为向量 $\mathbf{y}$ 正交于 $R(\mathbf{A})$,并且 $\mathbf{r}_i \in R(\mathbf{y})$($i=1,2,\cdots,m$)于是有:


$$ \begin{bmatrix} \mathbf{r}_1 \mathbf{y} \\ \mathbf{r}_2 \mathbf{y} \\ \vdots \\ \mathbf{r}_m \mathbf{y} \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ \vdots \\ 0 \end{bmatrix} \Longrightarrow \mathbf{A} \mathbf{y} = \mathbf{0} $$

又因为 $\mathbf{y} \not\in N(\mathbf{A})$,则有:


$$ \mathbf{A} \mathbf{y} \neq \mathbf{0} $$

显然这是矛盾的。

结论:若任意一个向量 $\mathbf{y}$ 正交于 $R(\mathbf{A})$,则必有 $\mathbf{y} \in N(\mathbf{A})$ 。

再来回答问题(2):假设向量 $\mathbf{z}$ 正交于 $N(\mathbf{A})$ ,则有:$ \mathbf{z} \perp \mathbf{x} $ 。假设 $\mathbf{r} \in R(\mathbf{A})$,则有:$ \mathbf{r} \perp \mathbf{x} $ 。于是 $\mathbf{z}$ 平行 $\mathbf{r} $,即 $\mathbf{z}$ 和 $\mathbf{r}$ 共线,所以 $\mathbf{z} \in R(\mathbf{A})$。

结论:若任意一个向量 $\mathbf{z}$ 正交于 $N(\mathbf{A})$,则必有 $\mathbf{z} \in R(\mathbf{A})$ 。

是时候给出正交补的定义了:


定义 假设子空间 $V \subseteq \mathbb{R}^n$,由 $\mathbb{R}^n$ 中所有正交于子空间 $V$ 的向量所组成的子空间称为 $V$ (在 $\mathbb{R}^n$ 下的)的正交补Orthogonal Complement),记作 $V^{\perp}$,读作 “$V$ 破儿破”(“$V$ perp”)。

根据正交补的定义,$R(\mathbf{A})$ 与 $N(\mathbf{A})$ 互为($\mathbb{R}^n$ 下的)正交补,即 $R(\mathbf{A})$ 是 $N(\mathbf{A})$ 在 $\mathbb{R}^n$ 下的正交补,$N(\mathbf{A})$ 是 $R(\mathbf{A})$ 在 $\mathbb{R}^n$ 下的正交补。

列空间和左零空间的情况与上面行空间与零空间的情况类似,这里仅做简要说明。


$$ \mathbf{A}^T \mathbf{y} = \begin{bmatrix} \mathbf{c}_1^T \\ \mathbf{c}_2^T \\ \vdots \\ \mathbf{c}_n^T \end{bmatrix} \mathbf{y} = \begin{bmatrix} 0 \\ 0 \\ \vdots \\ 0 \end{bmatrix} $$

可以看到 $\mathbf{y} \in N(\mathbf{A}^T)$ 与 $\mathbf{A}$ 的每一列 $\mathbf{c}_i$ 都正交。因此 $\mathbf{A}$ 的列空间 $C(\mathbf{A})$ ($C(\mathbf{A}) \subseteq \mathbb{R}^m$)与 $\mathbf{A}$ 的左零空间 $N(\mathbf{A}^T)$($N(\mathbf{A}^T) \subseteq \mathbb{R}^m$)在 $\mathbb{R}^m$ 下正交。

不难证明 $C(\mathbf{A})$ 与 $N(\mathbf{A}^T)$ 互为($\mathbb{R}^m$ 下的)正交补


思考题 假设 $V$ 是 $\mathbb{R}^n$ 下的子空间,如果 $V$ 的维数是 $r$($r \leqslant n$),那么 $V^{\perp}$ 的维数是多少呢?(提示)(答案

提示 还记得向量空间四个子空间的秩与维度一节的结论6吗?请从这个结论开始思考。

答案 先说结论:$ \dim(V) + \dim(V^{\perp}) = n $,即 $\dim(V^{\perp}) = n - r$。
假设 $\mathbf{v}_1$,$\mathbf{v_2}$,$\cdots$,$\mathbf{v_r}$ 是 $V$ 的一个基。那么以这个基为列向量的矩阵 $A$ 为:$$ \mathbf{A} = \begin{bmatrix} \mathbf{v}_1 & \mathbf{v_2} & \cdots & \mathbf{v_r} \end{bmatrix} $$ $\mathbf{A}$ 是一个 $n \times r$ 的矩阵,显然它的列空间 $C(\mathbf{A})$ 就是 $V$,$C(\mathbf{A})$ 的正交补为 $N(\mathbf{A}^T)$,显然 $N(\mathbf{A}^T)$ 就是 $V^{\perp}$,根据 向量空间四个子空间的秩与维度一节的结论6,有 $\dim{(C(\mathbf{A}))} + \dim{(N(\mathbf{A}^T))} = n$,即 $ \dim(V) + \dim(V^{\perp}) = n $。

结论:假设 $V$ 是 $\mathbb{R}^n$ 下的子空间,那么 $\dim{(V)} + \dim{(V^{\perp})} = n$


习题 已知 $V = \{ c_1 \begin{bmatrix} 1\\2\\0\\4 \end{bmatrix} + c_2 \begin{bmatrix} 0\\0\\1\\2 \end{bmatrix} \}$,($c_1, c_2 \in \mathbb{R}$),求 $V^{\perp}$ 。(答案

令 $\mathbf{A} = \begin{bmatrix} 1&0\\2&0\\0&1\\4&2 \end{bmatrix}$ 则 $C(\mathbf{A}) = V$。$\because$ $C(\mathbf{A})^{\perp} = N(\mathbf{A}^T) $    $\therefore$ $N(\mathbf{A}^T) = V^{\perp}$
令 $\mathbf{A}^T \mathbf{x} = \mathbf{0} $,即:$\begin{bmatrix} 1&2&0&4\\0&0&1&2 \end{bmatrix} \mathbf{x} = \mathbf{0}$
解得 $N(\mathbf{A}^T) = \mathbf{x} = d_1 \begin{bmatrix} -2\\1\\0\\0 \end{bmatrix} + d_2 \begin{bmatrix} -4\\0\\-2\\1 \end{bmatrix}$,($d_1, d_2 \in \mathbb{R} $)。
于是,$ V^{\perp} = N(\mathbf{A}^T) = \{ d_1 \begin{bmatrix} -2\\1\\0\\0 \end{bmatrix} + d_2 \begin{bmatrix} -4\\0\\-2\\1 \end{bmatrix} \}$,($d_1, d_2 \in \mathbb{R} $)。

投影

猜猜下图中哪个 $\mathbf{p}$ 是 $\mathbf{b}$ 在 $\mathbf{a}$ 上的投影?

图6 - 猜猜哪个是投影?

请选择你的答案: $A$     $B$     $C$        

图 $A$ 中的 $\mathbf{p}$ 就是 $\mathbf{b}$ 在 $\mathbf{a}$ 上的投影Projection)。现在我们只讨论图 $A$ 。图 $A$ 中的 $\mathbf{p}$ 描述的是 $\mathbf{a}$ 上距离点 $\mathbf{b}$ 最近的点,如果只能在 $\mathbf{a}$ 上取一点代替 $\mathbf{b}$ 的话,那么这个点就是 $\mathbf{p}$。$\mathbf{p}$ 与 $\mathbf{b}$ 的连线 $\mathbf{pb}$ 垂直于 $\mathbf{a}$(还记初中的时候我们学过的点线之间垂线段最短的定理吗?),$\mathbf{pb}$ 描述了向量 $\mathbf{b}$ 与 $\mathbf{a}$ 的偏差error)程度,我们用向量 $\mathbf{e}$ 来表示,即 $\mathbf{e} = \mathbf{pb} = \mathbf{b} - \mathbf{p}$。由于 $\mathbf{p}$ 是 $\mathbf{a}$ 上的点,因此存在某个 $\hat{x} \in \mathbb{R}$,使得 $\mathbf{p} = \hat{x} \mathbf{a}$。如下图所示:

图7 - 投影到直线

为了弄清楚 $\mathbf{p}$ 究竟在 $\mathbf{a}$ 上的什么位置,我们首先求解 $\hat{x}$,然后根据 $\mathbf{p} = \hat{x} \mathbf{a}$ 求出 $\mathbf{p}$。

首先求解 $\hat{x}$。因为 $\mathbf{a} \perp \mathbf{e}$,所以它们的内积为 $0$ :


$$ \mathbf{a}^T \mathbf{e} = 0 $$

将 $\mathbf{e} = \mathbf{b} - \mathbf{p}$ 与 $\mathbf{p} = \hat{x} \mathbf{a}$ 代入上式,得:


$$ \mathbf{a}^T (\mathbf{b} - \hat{x} \mathbf{a}) = 0 $$

解 $\hat{x}$,得:


$$ \hat{x} = \dfrac{\mathbf{a}^T\mathbf{b}}{\mathbf{a}^T\mathbf{a}} $$

接着求出 $\mathbf{p}$:


$$ \mathbf{p} = \hat{x} \mathbf{a} = \dfrac{\mathbf{a}^T\mathbf{b}}{\mathbf{a}^T\mathbf{a}} \mathbf{a} \tag{1} $$

这就是 $\mathbf{b}$ 在 $\mathbf{a}$ 上的投影公式。


思考题 上式能否写成:$\mathbf{p} = \dfrac{\mathbf{a}^T\mathbf{a}\mathbf{b}}{\mathbf{a}^T\mathbf{a}}$ ?(答案1)(答案2

答案1
一般情况下不能!
$\mathbf{a}^T\mathbf{b}\mathbf{a} = (\mathbf{a}^T\mathbf{b})\mathbf{a}$ 的结果是与 $\mathbf{a}$ 共线的向量。
$\mathbf{a}^T\mathbf{a}\mathbf{b} = (\mathbf{a}^T\mathbf{a})\mathbf{b}$ 的结果是与 $\mathbf{b}$ 共线的向量。
如果 $\mathbf{a}$ 与 $\mathbf{b}$ 不共线,那么这两个结果也不共线,因此不可能相等,这是一般情况。
如果 $\mathbf{a}$ 与 $\mathbf{b}$ 共线,那么这两个结果也共线,因此相等,这是特殊情况。
除非明确说明,我们所讨论的都是一般情况。

答案2
可以将 $\mathbf{a}^T\mathbf{b}\mathbf{a}$ 看做矩阵乘法,而矩阵乘法不满足交换律。



思考题 上式能否写成:$\mathbf{p} = \dfrac{\mathbf{a}\mathbf{a}^T\mathbf{b}}{\mathbf{a}^T\mathbf{a}}$ ?(答案

可以!
$\mathbf{a}^T\mathbf{b}$ 是一个常数,$\mathbf{a}$ 是一个向量,数乘向量满足交换律,因此: $\mathbf{a}^T\mathbf{b}\mathbf{a} = \mathbf{a}(\mathbf{a}^T\mathbf{b})$。
向量乘法满足结合律,因此:$\mathbf{a}(\mathbf{a}^T\mathbf{b}) = \mathbf{a}\mathbf{a}^T\mathbf{b}$。

观察 $(1)$ 式,我们可以得出怎样的结论呢?

首先,$\dfrac{\mathbf{a}^T\mathbf{b}}{\mathbf{a}^T\mathbf{a}}$ 是一个常数,因此 $\mathbf{p}$ 与 $\mathbf{a}$ 共线。

其次,$\mathbf{a}$ 的长度与 $\mathbf{p}$ 无关,$\mathbf{a}$ 乘以任何非零常数都不会改变 $\mathbf{p}$ 的结果,因为分子分母中 $\mathbf{a}$ 的个数相同,会将数乘的影响抵消掉。从 图7 中我们也可以很容易看出这一点。
第三,如果 $\mathbf{b} = \mathbf{a}$,那么 $\mathbf{p}=\mathbf{a}$,也就是说如果 $\mathbf{a}$ 在它本身上的投影就是它本身。
第四,如果 $\mathbf{b} \perp \mathbf{a}$,那么 $\mathbf{p} = \mathbf{0}$,也就是说如果 $\mathbf{b} \perp \mathbf{a}$,那么 $\mathbf{b}$ 在 $\mathbf{a}$ 上的投影为零向量。
第五,如果我们做第二次投影,那么第二次的投影就是 $\mathbf{p}$ 本身,如果做 $n$($n \geqslant 2$)次投影,结果仍是 $\mathbf{p}$ 本身。这可以通过下面的推导证明($\mathbf{p}^{(i)}$ 表示第 $i$ 次投影):


\begin{align*} \mathbf{p}^{(2)} &= \dfrac{\mathbf{a}^T\mathbf{p}^{(1)}}{\mathbf{a}^T\mathbf{a}} \mathbf{a} = \dfrac{\mathbf{a}^T \dfrac{\mathbf{a}^T\mathbf{b}}{\mathbf{a}^T\mathbf{a}} \mathbf{a} }{\mathbf{a}^T\mathbf{a}} \mathbf{a} = \dfrac{ \dfrac{\mathbf{a}^T \mathbf{a}}{\mathbf{a}^T \mathbf{a}} \mathbf{a}^T\mathbf{b}}{\mathbf{a}^T\mathbf{a}} \mathbf{a} = \dfrac{\mathbf{a}^T\mathbf{b}}{\mathbf{a}^T\mathbf{a}} \mathbf{a} = \mathbf{p}^{(1)} \end{align*}

下面我们继续处理 $(1)$ 式,将 $\mathbf{b}$ 拿到外面:


$$ \mathbf{p} = \dfrac{\mathbf{a}\mathbf{a}^T}{\mathbf{a}^T\mathbf{a}} \mathbf{b} \tag{2} $$

令 $\mathbf{P} = \dfrac{\mathbf{a}\mathbf{a}^T}{\mathbf{a}^T\mathbf{a}}$,有:


$$ \mathbf{p} = \mathbf{P} \mathbf{b} \tag{3} $$

假设 $\mathbf{a}$ 是一个 $n$ 维向量,$\mathbf{a}\mathbf{a}^T$ 就是一个 $n \times n $ 的矩阵,而 $\mathbf{a}^T\mathbf{a}$ 是一个常数,因此 $\mathbf{P} = \dfrac{\mathbf{a}\mathbf{a}^T}{\mathbf{a}^T\mathbf{a}} $ 是一个 $n \times n $ 的矩阵。$(3)$ 式表明对 $\mathbf{b}$ 做变换 $\mathbf{P}$,就得到 $\mathbf{b}$ 在 $\mathbf{a}$ 上的投影 $\mathbf{p}$。也就是说矩阵 $\mathbf{P}$ 的作用是投影,因此我们把它称作投影矩阵Projection Matrix)。

接下来我们把上面讨论的内容拿到 $\mathbb{R}^3$ 空间,一起来看一下向量投影到平面是什么样子的:

图8 - 投影到平面

与投影到直线类似,投影到平面就是通过点 $\mathbf{b}$ 向平面 $V$ 作垂线,垂足 $\mathbf{p}$(既是点也是向量)即为 $\mathbf{b}$ 在 $\mathbf{V}$ 上的投影。令 $\mathbf{e} = \mathbf{b} - \mathbf{p}$,则 $\mathbf{e}$ 表示了向量 $b$ 相对于平面 $V$ 的偏差。假设 $\mathbf{a}_1$ 与 $\mathbf{a}_2$ 是 $V$ 的一个基,那么必定存在 $\hat{x}_1$ 与 $\hat{x}_2$ 使得 $\mathbf{p} = \hat{x}_1 \mathbf{a}_1 + \hat{x}_2 \mathbf{a}_2 $ 。我们令 $\mathbf{A} = \begin{bmatrix} \mathbf{a}_1 & \mathbf{a}_2 \end{bmatrix}$,$\hat{\mathbf{x}} = \begin{bmatrix} \hat{x}_1 \\ \hat{x}_2 \end{bmatrix}$,那么就有 $\mathbf{p} = \mathbf{A} \hat{\mathbf{x}}$。又因为 $\mathbf{e} \perp V$,因此 $\mathbf{e}$ 也垂直 $V$ 的基,即 $\mathbf{e} \perp \mathbf{a}_1$ 并且 $\mathbf{e} \perp \mathbf{a}_2$,于是有:


$$ \left\{ \begin{array}{l} \mathbf{a}_1^T \mathbf{e} = 0 \\ \mathbf{a}_2^T \mathbf{e} = 0 \end{array} \right. \Longrightarrow \begin{bmatrix} \mathbf{a}_1^T \\ \mathbf{a}_2^T \end{bmatrix} (\mathbf{b} - \mathbf{p}) = \mathbf{0} \Longrightarrow \mathbf{A}^T (\mathbf{b} - \mathbf{A}\hat{\mathbf{x}}) = \mathbf{0} $$

解出 $\hat{\mathbf{x}}$,得:


$$ \hat{\mathbf{x}} = (\mathbf{A}^T\mathbf{A})^{-1} \mathbf{A}^T \mathbf{b} $$

于是:


$$ \mathbf{p} = \mathbf{A} \hat{\mathbf{x}} = \mathbf{A} (\mathbf{A}^T\mathbf{A})^{-1} \mathbf{A}^T \mathbf{b} \tag{4} $$


$$ \mathbf{P} = \mathbf{A} (\mathbf{A}^T\mathbf{A})^{-1} \mathbf{A}^T \tag{5} $$

则有:


$$ \mathbf{p} = \mathbf{P} \mathbf{b} \tag{6} $$

这里 $\mathbf{P}$ 的作用是将向量 $\mathbf{b}$ 投影到平面 $V$,因此叫做投影矩阵。

但是,等一下!为什么 $\mathbf{P}$ 是一个矩阵呢?我们可以分析一下:因为 $\mathbf{a}_1$ 与 $\mathbf{a}_2$ 都是 $3$ 维向量,因此 $\mathbf{A} = \begin{bmatrix} \mathbf{a}_1 & \mathbf{a}_2 \end{bmatrix}$ 是一个 $3 \times 2$ 的矩阵,进而 $\mathbf{A}^T$ 是一个 $2 \times 3$ 的矩阵,$\mathbf{A}^T \mathbf{A}$ 是一个 $2 \times 2$ 的矩阵,$(\mathbf{A}^T \mathbf{A})^{-1}$ 也是一个 $2 \times 2$ 的矩阵,因此 $\mathbf{P}$ 是一个 $3 \times 3$ 的方阵。

我们可不可以将 $(5)$ 式的括号拆开呢?比如下面这样做是不是合法的?


$$ \mathbf{P} = \mathbf{A} (\mathbf{A}^T\mathbf{A})^{-1} \mathbf{A}^T = \mathbf{A} \mathbf{A}^{-1} (\mathbf{A}^T)^{-1} \mathbf{A}^T \quad\quad\quad\quad \color{red}{\huge{\text{×}}} $$

看到后面的大红叉了吗?这是错误的!因为 $\mathbf{A}$ 未必是方阵,而只有方阵是可以进行求逆运算的,因此当 $\mathbf{A}$ 不是方阵时,不能写 $\mathbf{A}^{-1}$ !那为什么可以写 $(\mathbf{A}^T \mathbf{A})^{-1}$ 呢?因为 $\mathbf{A}^T \mathbf{A}$ 是方阵嘛!比如 $\mathbf{A}$ 是 $m \times n $ 的矩阵,那么 $\mathbf{A}^T \mathbf{A}$ 就是一个 $n \times n$ 的方阵。

如果对 $\mathbf{b}$ 进行二次投影会有什么结果呢?当然结果还是 $\mathbf{p}$,因为第一次投影已经在 $V$ 上了,第二次投影还是在 $V$ 上,$\mathbf{p}$ 应该不变。我们可以通过代数方法来得到这个结果——通过求 $\mathbf{P}^2$:


\begin{align*} \mathbf{P}^2 &= \mathbf{A} (\mathbf{A}^T\mathbf{A})^{-1} \mathbf{A}^T \mathbf{A} (\mathbf{A}^T\mathbf{A})^{-1} \mathbf{A}^T \\ &= \mathbf{A} (\mathbf{A}^T\mathbf{A})^{-1} \cancel{ (\mathbf{A}^T \mathbf{A}) (\mathbf{A}^T\mathbf{A})^{-1} } \mathbf{A}^T \\ &= \mathbf{A} (\mathbf{A}^T\mathbf{A})^{-1} \mathbf{A}^T \\ &= \mathbf{P} \end{align*}

有了在 $\mathbb{R}^3$ 中投影的几何和代数概念,我们就可以将投影一般化到 $\mathbb{R}^m$ 空间了。

假设 $\mathbf{b}$ 是 $\mathbb{R}^m$ 中的一个向量,$V$ 是 $\mathbb{R}^m$ 下的 $n$($n \leqslant m$)维子空间,$\mathbf{a}_1, \mathbf{a}_2, \cdots, \mathbf{a}_n$ 是 $V$ 的一个基。那么 $\mathbf{b}$ 在 $V$ 上的投影 $\mathbf{p}$ 可以表示为:$\mathbf{p} = \hat{x}_1 \mathbf{a}_1 + \hat{x}_2 \mathbf{a}_2 + \cdots + \hat{x}_n \mathbf{a}_n = \mathbf{A} \hat{\mathbf{x}} $。偏差 $\mathbf{e} = \mathbf{b} - \mathbf{p}$,并且 $\mathbf{e} \perp V$,于是:


$$ \left\{ \begin{array}{l} \mathbf{a}_1^T \mathbf{e} = 0 \\ \mathbf{a}_2^T \mathbf{e} = 0 \\ \vdots \\ \mathbf{a}_n^T \mathbf{e} = 0 \end{array} \right. \Longrightarrow \begin{bmatrix} \mathbf{a}_1^T \\ \mathbf{a}_2^T \\ \vdots \\ \mathbf{a}_n^T \end{bmatrix} (\mathbf{b} - \mathbf{p}) = \mathbf{0} \Longrightarrow \mathbf{A}^T (\mathbf{b} - \mathbf{A}\hat{\mathbf{x}}) = \mathbf{0} $$

解出 $\hat{\mathbf{x}}$,得:


$$ \hat{\mathbf{x}} = (\mathbf{A}^T\mathbf{A})^{-1} \mathbf{A}^T \mathbf{b} $$

于是:


$$ \mathbf{p} = \mathbf{A} \hat{\mathbf{x}} = \mathbf{A} (\mathbf{A}^T\mathbf{A})^{-1} \mathbf{A}^T \mathbf{b} = \mathbf{P} \mathbf{b} $$

投影矩阵为:


$$ \mathbf{P} = \mathbf{A} (\mathbf{A}^T\mathbf{A})^{-1} \mathbf{A}^T $$

这里的 $\mathbf{P}$ 是一个 $n \times n$ 的方阵。并且 $\mathbf{P}^2 = \mathbf{P}$。

投影与近似解

方程组 $\mathbf{A} \mathbf{x} = \mathbf{b}$ 何时有解?我们已经在向量空间中解释过,只有当 $\mathbf{b}$ 在 $\mathbf{A}$ 的列空间中,即 $\mathbf{b} \in C(\mathbf{A}) $ 时方程才有解。但是当 $\mathbf{b} \not\in C(\mathbf{A})$ 该如何处理呢?当然你可以说这个方程组无解,然后彻底抛弃它,利用节省下来的时间去喝一杯咖啡 ^_^ 。但是如果这个方程组很重要(比如解开它就解开了中彩票的秘密),我认为我们有理由继续处理这个无解的方程组,虽然它无解,但是我们可以求它的近似解。那么如何求得它的近似解呢?虽然 $\mathbf{b}$ 不在 $C(\mathbf{A})$ 中,但是我们已经学习过了投影,知道 $\mathbf{b}$ 在 $C(\mathbf{A})$ 上的投影 $\mathbf{p}$ 就在 $C(\mathbf{A})$ 中,而 $\mathbf{p}$ 正好是 $C(\mathbf{A})$ 中最适合代替 $\mathbf{b}$,同时又能解得 $\mathbf{x}$ 的点!不过这里解得的 $\mathbf{x}$ 并不是正解,而是近似解,我们用 $\hat{\mathbf{x}}$ 来表示。

为了更好地理解上面的内容,我们再来看一下图8:

现在我们假设 $V$ 就是 $\mathbf{A}$ 的列空间,而 $\mathbf{a}_1$ 和 $\mathbf{a}_2$ 就是 $\mathbf{A}$ 的两列,而 $\mathbf{b}$ 是不属于 $V$ 的一个向量。现在要解方程组:


$$ \begin{bmatrix} \mathbf{a}_1 & \mathbf{a}_2 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} = \mathbf{b} \Longrightarrow x_1 \mathbf{a}_1 + x_2 \mathbf{a}_2 = \mathbf{b} $$

这显然无解,因为无论 $x_1$ 与 $x_2$ 怎样取值,$ x_1 \mathbf{a}_1 + x_2 \mathbf{a}_2$ 也不可能跑到 $V$ 之外去寻找 $\mathbf{b}$!不过我们可以找到在 $V$ 中距离 $\mathbf{b}$ 最近的点,这个点当然就是 $\mathbf{b}$ 在 $V$ 上的投影 $\mathbf{p}$。现在我们解如下的方程:


$$ \begin{bmatrix} \mathbf{a}_1 & \mathbf{a}_2 \end{bmatrix} \begin{bmatrix} \hat{x}_1 \\ \hat{x}_2 \end{bmatrix} = \mathbf{p} \Longrightarrow \hat{x}_1 \mathbf{a}_1 + \hat{x}_2 \mathbf{a}_2 = \mathbf{p} $$

因为 $\mathbf{p}$ 在 $V$ 中,所以必然可以解出 $\hat{x}_1$ 与 $\hat{x}_2$。这就是用 $V$ 中最接近 $\mathbf{b}$ 的点 $\mathbf{p}$ 代替 $\mathbf{b}$ 而求得的解,即近似解。注意这里解得的 $x$ 是近似解,因此我们在它的头上戴了一顶帽子,即 $\hat{x}$,读作 “$x$ hat”。

通过上面的讲解,相信读者已经大致了解什么是近似解了。下面我们再用代数式演算一遍。

假设有方程组 $\mathbf{A} \mathbf{x} = \mathbf{b}$,我们用消元法(或其他任何方法)发现这个方程组无解。而我们又不打算抛弃这个方程组,那么我们转而去求它的近似解。

首先我们需要将 $\mathbf{b}$ 投影到 $\mathbf{A}$ 的列空间 $C(\mathbf{A})$ 上,那么如何做到呢?当然是用投影矩阵(式(5))左乘 $\mathbf{b}$,同时 $\mathbf{x}$ 变为 $\hat{\mathbf{x}}$:


$$ \mathbf{A} \hat{\mathbf{x}} = \mathbf{A} (\mathbf{A}^T\mathbf{A})^{-1} \mathbf{A}^T \mathbf{b} $$

为了简化计算,我们将上式两边左乘 $\mathbf{A}^T$,得:


$$ \mathbf{A}^T \mathbf{A} \hat{\mathbf{x}} = \cancel{\mathbf{A}^T \mathbf{A} (\mathbf{A}^T\mathbf{A})^{-1}} \mathbf{A}^T \mathbf{b} $$

于是我们得到求近似解的方程组:


$$ \mathbf{A}^T \mathbf{A} \hat{\mathbf{x}} = \mathbf{A}^T \mathbf{b} \tag{7} $$

解 $\hat{\mathbf{x}}$,得:


$$ \hat{\mathbf{x}} = (\mathbf{A}^T \mathbf{A})^{-1} \mathbf{A}^T \mathbf{b} \tag{8} $$

在实际解题时,用 $(7)$ 式和 $(8)$ 式均可。


某工人测量一零件的长度,第一次测量为 $2$ 厘米,第二次测量为 $3$ 厘米,求零件的长度。

分析 看似滑稽的一道题,其中却隐含了正交和投影的知识。我们用求近似解的方法来解这道题。

根据题意,有:$$ \left\{ \begin{array}{l} x = 2 \\ x = 3 \end{array} \right. $$
令 $\mathbf{A} = \begin{bmatrix} 1\\1 \end{bmatrix}$,$\mathbf{b} = \begin{bmatrix} 2\\3 \end{bmatrix} $,$\mathbf{x} = \begin{bmatrix} x \end{bmatrix} $,则方程组可表示为:$$ \mathbf{A} \mathbf{x} = \mathbf{b} $$
即:$$ \begin{bmatrix} 1\\1 \end{bmatrix} \mathbf{x} = \begin{bmatrix} 2\\3 \end{bmatrix} $$
显然这个方程组无解,我们将等式两边乘以 $\mathbf{A}^T$,得:$$ \mathbf{A}^T \mathbf{A} \hat{\mathbf{x}} = \mathbf{A}^T \mathbf{b} $$
即:$$ \begin{bmatrix} 1&1 \end{bmatrix} \begin{bmatrix} 1\\1 \end{bmatrix} \begin{bmatrix} \hat{x} \end{bmatrix} = \begin{bmatrix} 1&1 \end{bmatrix} \begin{bmatrix} 2\\3 \end{bmatrix} $$
整理:$$ 2\hat{x}=5 $$
解得:$$ \hat{x}=2.5 $$
因此零件的长度为 $2.5$ 厘米。

再来看一个例子:


解方程组:$$ \left\{ \begin{array}{l} x+y=2\\x+y=3\\x-y=1 \end{array} \right. $$

显然方程组无解,用近似解的方式来求解。方程组等价于:$$ \begin{bmatrix} 1&1 \\ 1&1 \\ 1&-1 \end{bmatrix} \begin{bmatrix} x\\y \end{bmatrix} = \begin{bmatrix} 2\\3\\1 \end{bmatrix} $$
转化为求近似解:$$ \begin{bmatrix} 1&1&1 \\ 1&1&-1 \end{bmatrix} \begin{bmatrix} 1&1 \\ 1&1 \\ 1&-1 \end{bmatrix} \begin{bmatrix} \hat{x}\\ \hat{y} \end{bmatrix} = \begin{bmatrix} 1&1&1 \\ 1&1&-1 \end{bmatrix} \begin{bmatrix} 2\\3\\1 \end{bmatrix} $$ $$ \begin{bmatrix} 3&1 \\ 1&3 \end{bmatrix} \begin{bmatrix} \hat{x} \\ \hat{y} \end{bmatrix} = \begin{bmatrix} 6 \\ 4 \end{bmatrix} $$
解得:$\hat{x} = \dfrac{7}{4}$,$\hat{y} = \dfrac{3}{4}$

本节最后给读者留一个思考题:


思考题 如果 $\mathbf{A}\mathbf{x}=\mathbf{b}$ 有解,能不能用近似解的方式求解呢?(答案

可以!$\mathbf{A}\mathbf{x}=\mathbf{b}$ 有解就说明 $\mathbf{b} \in C(\mathbf{A})$,那么 $\mathbf{b}$ 的投影就是它本身,因此等号两边左乘 $\mathbf{A}^T$ 之后的解不变(左乘 $\mathbf{A}^T$相当于作投影)。这是近似解等于正解的唯一情况。

标准正交

我们已经知道了什么是正交,那么什么是标准正交呢?现在让我们回到幼年时代吧!一岁半到二岁的时候,父母就开始教我们数数,从 $1$ 数到 $10$,那时候,我们总是认为 $1$ 是整个世界的开始,所以 $1$ 就是那时我们的标准。而标准正交中的【标准】二字,也正是与 $1$ 有关!老规矩,猜猜下面哪组向量是标准正交:

  $\begin{bmatrix} 1\\0 \end{bmatrix}$ 与 $\begin{bmatrix} 0\\1 \end{bmatrix}$      $\begin{bmatrix} 2\\0 \end{bmatrix}$ 与 $\begin{bmatrix} 0\\2 \end{bmatrix}$      $\begin{bmatrix} 3\\0 \end{bmatrix}$ 与 $\begin{bmatrix} 0\\3 \end{bmatrix}$      $\begin{bmatrix} 4\\0 \end{bmatrix}$ 与 $\begin{bmatrix} 0\\4 \end{bmatrix}$

长度为 $1$ 的两个向量如果正交,则称它们为标准正交Orthonormal)。

扩展到 $n$ 个向量的情况:


定义 假设 $\mathbf{q}_1, \mathbf{q}_2, \cdots, \mathbf{q}_n$ 是向量空间 $\mathbb{R}^m$ 中的 $n$ 个向量,如果:

$$ \mathbf{q}_i^T \mathbf{q}_j = \left\{ \begin{array}{l} 0 \quad (i \ne j) \\ 1 \quad (i = j) \end{array} \right. \quad (i,j=1,2,\cdots,n) $$

则称 $\mathbf{q}_1, \mathbf{q}_2, \cdots, \mathbf{q}_n$ (在 $\mathbb{R}^m$中)标准正交。

接下来是标准正交基Orthonormal Basis)的定义:


定义 由标准正交向量组成的基称为标准正交基。

比如 $\mathbb{R}^3$ 的一个标准正交基为:$\begin{bmatrix} 1\\0\\0 \end{bmatrix}$,$\begin{bmatrix} 0\\1\\0 \end{bmatrix}$,$\begin{bmatrix} 0\\0\\1 \end{bmatrix}$。

如果一个矩阵是由标准正交的向量组成的,那么我们将这个矩阵记为 $\mathbf{Q}$。注意 $\mathbf{Q}$ 并不一定是方阵。

比如由 $\mathbb{R}^3$ 中的两个正交向量 $\begin{bmatrix} 1\\0\\0 \end{bmatrix}$ 与 $\begin{bmatrix} 0\\1\\0 \end{bmatrix}$ 组成的矩阵为:$\mathbf{Q} = \begin{bmatrix} 1&0 \\ 0&1 \\ 0&0 \end{bmatrix}$。

我们再来仔细看看标准正交的定义,假设有两个向量 $\mathbf{q}_1$ 与 $\mathbf{q}_2$ 标准正交,则根据定义,有 $\mathbf{q}_1^T\mathbf{q}_1 = 1$,$\mathbf{q}_1^T\mathbf{q}_2 = 0$,$\mathbf{q}_2^T\mathbf{q}_1 = 0$,$\mathbf{q}_2^T\mathbf{q}_2 = 1$。我们将这四个数组成矩阵:$\begin{bmatrix} \mathbf{q}_1^T\mathbf{q}_1 & \mathbf{q}_1^T\mathbf{q}_2 \\ \mathbf{q}_2^T\mathbf{q}_1 & \mathbf{q}_2^T\mathbf{q}_2 \end{bmatrix} = \begin{bmatrix} 1&0 \\ 0&1 \end{bmatrix}$,根据矩阵乘法,我们可以继续整理:$ \begin{bmatrix} \mathbf{q}_1^T \\ \mathbf{q}_2^T \end{bmatrix} \begin{bmatrix} \mathbf{q}_1 & \mathbf{q}_2 \end{bmatrix} = \begin{bmatrix} \mathbf{q}_1^T\mathbf{q}_1 & \mathbf{q}_1^T\mathbf{q}_2 \\ \mathbf{q}_2^T\mathbf{q}_1 & \mathbf{q}_2^T\mathbf{q}_2 \end{bmatrix} = \begin{bmatrix} 1&0 \\ 0&1 \end{bmatrix} = \mathbf{I}$,而 $\begin{bmatrix} \mathbf{q}_1^T \\ \mathbf{q}_2^T \end{bmatrix} \begin{bmatrix} \mathbf{q}_1 & \mathbf{q}_2 \end{bmatrix} $ 正是 $\mathbf{Q}^T\mathbf{Q}$。

于是我们得到列是标准正交向量的矩阵 $\mathbf{Q}$ 的一个重要性质:


$$ \mathbf{Q}^T \mathbf{Q} = \mathbf{I} $$

$\mathbf{Q}$ 还有一些其他有趣的性质,比如:

$$ \left\| \mathbf{Q} \mathbf{x} \right\|^2 = (\mathbf{Q}\mathbf{x})^T (\mathbf{Q}\mathbf{x}) = \mathbf{x}^T \mathbf{Q}^T \mathbf{Q} \mathbf{x} = \mathbf{x}^T \mathbf{I} \mathbf{x} = \left\| \mathbf{x} \right\|^2 $$

我们也可以构造行是标准正交向量的矩阵,比如:

$$ \mathbf{Q} = \begin{bmatrix} 1&0&0 \\ 0&0&1 \end{bmatrix} $$

它有性质:

$$ \mathbf{Q}\mathbf{Q}^T = \mathbf{I} $$

重点来啦(敲黑板)!我们可以构造一个矩阵,它的行和列都是标准正交向量,比如:

$$ \mathbf{Q} = \begin{bmatrix} 1&0&0 \\ 0&0&1 \\ 0&1&0 \end{bmatrix} $$


假设 $\mathbf{Q}$ 是一个 $m \times n$ 的矩阵,那么 $\mathbf{Q}$ 的行由 $m$ 个 $n$ 维向量组成,如果 $m > n$,则这 $m$ 个向量必定线性相关,因此这 $m$ 个向量无法正交。同理,$\mathbf{Q}$ 的列由 $n$ 个 $m$ 维向量组成,如果 $n > m$,则这 $n$ 个向量必定线性相关,因此这 $n$ 个向量无法正交。因此为了使 $\mathbf{Q}$ 的行与列都是正交向量,则必定有 $m = n$。

它是一个方阵(为什么?),并且有:

$$ \mathbf{Q} \mathbf{Q}^T = \mathbf{Q}^T \mathbf{Q} = \mathbf{I} $$

这样的矩阵叫做正交矩阵Orthogonal Matrix)。


定义 如果矩阵 $\mathbf{Q}$ 的行与列都由标准正交向量组成,那么称 $\mathbf{Q}$ 为正交矩阵。

注意正交矩阵不叫做 $\bcancel{\cancel{\text{标准正交矩阵}}}$。

正交矩阵有一个非常重要的性质:

$$ \mathbf{Q}^T = \mathbf{Q}^{-1} $$

投影与标准正交基

图8 中,$\mathbf{a}_1$ 与 $\mathbf{a}_2$ 是 $V$ 中任取的一个基。现在假设 $\mathbf{q}_1$ 与 $\mathbf{q}_2$ 是 $V$ 的一个标准正交基,那么它会对近似解 $\hat{\mathbf{x}}$、投影矩阵 $\mathbf{P}$ 以及投影点 $\mathbf{p}$ 产生什么影响呢?我们令 $\mathbf{Q} = \begin{bmatrix} \mathbf{q}_1 & \mathbf{q}_2 \end{bmatrix}$,根据 $\mathbf{Q}^T \mathbf{Q} = \mathbf{I}$,则有:

\begin{align*} & \hat{\mathbf{x}} = (\mathbf{Q}^T \mathbf{Q})^{-1} \mathbf{Q}^T \mathbf{b} = \mathbf{Q}^T \mathbf{b} \\ & \mathbf{P} = \mathbf{Q} (\mathbf{Q}^T\mathbf{Q})^{-1} \mathbf{Q}^T = \mathbf{Q} \mathbf{Q}^T \\ & \mathbf{p} = \mathbf{Q} \hat{\mathbf{x}} = \mathbf{Q} \mathbf{Q}^T \mathbf{b} \end{align*}

由此我们可以看到,当 $\mathbf{q}_1$ 与 $\mathbf{q}_2$ 取 $V$ 中的标准正交基时,将大大简化投影与近似解的计算。

上述讨论可以轻易推广到 $V \subseteq \mathbb{R}^n$ 的情况。这里不再赘述。

下面我们进一步分析 $\mathbf{p} = \mathbf{Q} \mathbf{Q}^T \mathbf{b}$,假设 $\mathbf{Q}$ 是一个 $m \times n$ 的矩阵,将 $ \mathbf{Q} $ 拆解为标准正交基的形式:

\begin{align*} \mathbf{p} &= \begin{bmatrix} \mathbf{q}_1 & \mathbf{q}_2 & \cdots & \mathbf{q}_n \end{bmatrix} \begin{bmatrix} \mathbf{q}_1^T \\ \mathbf{q}_2^T \\ \vdots \\ \mathbf{q}_n^T \end{bmatrix} \mathbf{b} \\ &= \mathbf{q}_1 \mathbf{q}_1^T \mathbf{b} + \mathbf{q}_2 \mathbf{q}_2^T \mathbf{b} + \cdots + \mathbf{q}_n \mathbf{q}_n^T \mathbf{b} \\ &= (\mathbf{q}_1^T \mathbf{b}) \mathbf{q}_1 + (\mathbf{q}_2^T \mathbf{b}) \mathbf{q}_2 + \cdots + (\mathbf{q}_n^T \mathbf{b}) \mathbf{q}_n \end{align*}

(注意上式中的 $\mathbf{q}_i^T \mathbf{b}$($i=1,2,\cdots,n$)是一个常数。)

由此可知,$\mathbf{p}$ 是标准正交基 $\mathbf{q}_1$,$\mathbf{q}_2$,$\cdots$,$\mathbf{q}_n$ 的线性组合,该线性组合的系数为 $\mathbf{q}_1^T \mathbf{b}$,$\mathbf{q}_2^T \mathbf{b}$,$\cdots$,$\mathbf{q}_n^T \mathbf{b}$。

特别地,当 $m = n$ 时,$\mathbf{b}$ 将被投影到 $\mathbb{R}^m$ 本身,即 $\mathbf{p} = \mathbf{b}$,此时 $\mathbf{Q}$ 是一个方阵,并且 $\mathbf{Q}\mathbf{Q}^T = \mathbf{I}$。而 $\mathbf{b}$ 正是它本身在 $\mathbf{q}_i$($i=1,2,\cdots,n$)方向上的分量之和:$\mathbf{b} = (\mathbf{q}_1^T \mathbf{b}) \mathbf{q}_1 + (\mathbf{q}_2^T \mathbf{b}) \mathbf{q}_2 + \cdots + (\mathbf{q}_n^T \mathbf{b}) \mathbf{q}_n$。

格莱姆-施密特正交化

上一节我们提到在求投影与近似解时,取目标子空间上的标准正交基作为系数矩阵的列将大大简化投影与近似解的计算。那么假设我们已知目标子空间中的一个非标准正交基,可不可以通过它求得该子空间中的一个标准正交基呢?当然可以,这就是我们本节要讲解的格莱姆-施密特正交化Gram-Schmidt Process)。

我们观察下图:

图9 - 正交化(二维)

假设有图中的 $\mathbf{a}$ 和 $\mathbf{b}$ 两个向量,那么如何利用它们求该平面内的一组正交向量呢?我们可以看到图中 $\mathbf{a}$ 是正交于 $\mathbf{B}$ 的,因此如果保持 $\mathbf{A} = \mathbf{a}$ 不动,再将 $\mathbf{B}$ 计算出来,就得到了一组正交向量,接着再分别计算 $\mathbf{q}_1 = \dfrac{\mathbf{A}}{\left\| \mathbf{A} \right\|} $ 与 $\mathbf{q}_2 = \dfrac{\mathbf{B}}{\left\| \mathbf{B} \right\|}$,这样就得到了一个标准正交基 $\mathbf{q}_1$ 与 $\mathbf{q}_2$。于是,两个向量 $\mathbf{a}$ 与 $\mathbf{b}$ 的正交化公式为:

\begin{align*} & \mathbf{A} = \mathbf{a} \\ & \mathbf{B} = \mathbf{b} - \dfrac{\mathbf{a}^T\mathbf{b}}{\mathbf{a}^T\mathbf{a}} \mathbf{a} = \mathbf{b} - \dfrac{\mathbf{A}^T\mathbf{b}}{\mathbf{A}^T\mathbf{A}} \mathbf{A} \\& \mathbf{q}_1 = \dfrac{\mathbf{A}}{\left\| \mathbf{A} \right\|} \\& \mathbf{q}_2 = \dfrac{\mathbf{B}}{\left\| \mathbf{B} \right\|} \end{align*}

三个向量 $\mathbf{a}$、$\mathbf{b}$、$\mathbf{c}$ 的情况又如何呢?我们仍可以利用 $\mathbf{a}$ 与 $\mathbf{b}$ 计算出 $\mathbf{A}$ 和 $\mathbf{B}$,那么第三个正交向量该如何求呢?假设我们已经求得了 $\mathbf{A}$ 和 $\mathbf{B}$,我们的目的是利用 $\mathbf{A}$ 和 $\mathbf{B}$ 求出与它们都正交的 $\mathbf{C}$,如下图所示:

图10 - 正交化(三维)

在图中我们可以看到,因为 $\mathbf{A}$、$\mathbf{B}$、$\mathbf{C}$ 互相垂直,因此 $\mathbf{c}$ 是它在 $\mathbf{A}$、$\mathbf{B}$、$\mathbf{C}$ 三个方向的投影之和(这与 $xyz$ 直角坐标系中的向量是它在 $x$、$y$、$z$ 轴上的投影之和是一个道理)。$\mathbf{c}$ 在 $\mathbf{A}$、$\mathbf{B}$ 方向上的投影之和即为 $\mathbf{p}$。因此:

$$ \mathbf{C} = \mathbf{c} - \dfrac{\mathbf{A}^T\mathbf{c}}{\mathbf{A}^T\mathbf{A}} \mathbf{A} - \dfrac{\mathbf{B}^T\mathbf{c}}{\mathbf{B}^T\mathbf{B}} \mathbf{B} $$

相信读者到这里已经知道如何正交化 $\mathbb{R}^n$ 中 $n$ 个向量了。笔者就不再赘述。

现在我们从结果反过来看 $\mathbf{a}$,$\mathbf{b}$ 与 $\mathbf{c}$。假设 $\mathbf{q}_1$、$\mathbf{q}_2$ 和 $\mathbf{q}_3$ 是正交化之后的结果。我们在投影与标准正交基中已经知道,一个向量 $\mathbf{u}$ 等于它在标准正交基方向上的分量之和,即:$\mathbf{u} = (\mathbf{q}_1^T\mathbf{u})\mathbf{q}_1 + (\mathbf{q}_2^T\mathbf{u})\mathbf{q}_2 + \cdots + (\mathbf{q}_n^T\mathbf{u})\mathbf{q}_n$。先来看我们是如何正交化 $\mathbf{a}$ 的,由于 $\mathbf{a}$ 的正交化结果仍在 $\mathbf{a}$ 上,因此这里只涉及一维操作,于是 $\mathbf{a} = (\mathbf{q}_1^T\mathbf{a})\mathbf{q}_1$,再来看 $\mathbf{b}$,$\mathbf{b}$ 的正交化用到了 $\mathbf{a}$ 正交化的结果 $\mathbf{q}_1$,而它又多出了一维,增加了 $\mathbf{q}_2$,因此 $\mathbf{b} = (\mathbf{q}_1^T\mathbf{b})\mathbf{q}_1 + (\mathbf{q}_2^T\mathbf{b})\mathbf{q}_2 $,同理,$\mathbf{c}$ 用到了 $\mathbf{a}$ 与 $\mathbf{b}$ 正交化的结果 $\mathbf{q}_1$ 和 $\mathbf{q}_2$,并又多出了一维,因此 $\mathbf{c} = (\mathbf{q}_1^T\mathbf{c})\mathbf{q}_1 + (\mathbf{q}_2^T\mathbf{c})\mathbf{q}_2 + (\mathbf{q}_3^T\mathbf{c})\mathbf{q}_3 $。把它们写到一起:

\begin{align*} \begin{bmatrix} \mathbf{a} & \mathbf{b} & \mathbf{c} \end{bmatrix} &= \begin{bmatrix} \mathbf{q}_1(\mathbf{q}_1^T\mathbf{a}) & \mathbf{q}_1 (\mathbf{q}_1^T\mathbf{b}) + \mathbf{q}_2 (\mathbf{q}_2^T\mathbf{b}) & \mathbf{q}_1 (\mathbf{q}_1^T\mathbf{c}) + \mathbf{q}_2 (\mathbf{q}_2^T\mathbf{c}) + \mathbf{q}_3 (\mathbf{q}_3^T\mathbf{c}) \end{bmatrix} \\ &= \begin{bmatrix} \mathbf{q}_1 & \mathbf{q}_2 & \mathbf{q}_3 \end{bmatrix} \begin{bmatrix} \mathbf{q}_1^T \mathbf{a} & \mathbf{q}_1^T \mathbf{b} & \mathbf{q}_1^T \mathbf{c} \\ 0 & \mathbf{q}_2^T \mathbf{b} & \mathbf{q}_2^T \mathbf{c} \\ 0 & 0 & \mathbf{q}_3^T \mathbf{c} \end{bmatrix} \end{align*}

这就是格莱姆-施密特正交化的实质。上式中的上三角矩阵正是由于正交化的每一步都多出来一个维度所导致。我们用 $\mathbf{A}$ 表示要正交化的向量组成的矩阵,$\mathbf{R}$ 表示上三角矩阵。则上面的式子可以表示为:

$$ \mathbf{A} = \mathbf{Q} \mathbf{R} $$

上式两边都左乘 $\mathbf{Q}^T$,由于 $\mathbf{Q}^T\mathbf{Q} = \mathbf{I}$,因此

$$ \mathbf{R} = \mathbf{Q}^T \mathbf{A} $$

这个 $\mathbf{R}$ 便是连接 $\mathbf{Q}$ 和 $\mathbf{A}$ 的桥梁。

傅里叶级数

下面我们介绍一个正交基的应用,或者可以说是将正交概念应用到函数的例子。

正交函数与正交函数基

再来看一下两个向量 $\mathbf{u}$ 和 $\mathbf{v}$ 正交的情况:

$$ \mathbf{u}^T \mathbf{v} = u_1^T v_1 + u_2^T v_2 + \cdots + u_n^T v_n = 0 $$

现在我们将 $\mathbf{u}$ 和 $\mathbf{v}$ 换成 $x$ 的函数,即 $u(x)$ 和 $v(x)$,并假设 $x$ 的定义域是 $D = [x_1, x_2]$,那么上面的加和就变成 $u(x)v(x)$ 在 $D$ 上的积分:

$$ u(x)^T v(x) = \int_{x_1}^{x_2} u(x)v(x) \mathrm{d}x = 0 $$

此时我们说函数 $u(x)$ 与 $v(x)$ 正交,也说 $u(x)$ 与 $v(x)$ 互为正交函数

根据正交基的定义,假设 $\begin{bmatrix} \mathbf{u}_1 \\ \mathbf{u}_2 \\ \vdots \\ \mathbf{u}_n \end{bmatrix}$ 是一个正交基。那么有:

$$ \mathbf{u}_i^T \mathbf{u}_j = \left\{ \begin{array}{l} 0 \quad (i \ne j) \\ c \quad (i = j, c \ne 0) \end{array} \right. \quad (i,j=1,2,\cdots,n) $$

同样地,我们也可以定义正交函数基。假设 $\begin{bmatrix} u_1(x) \\ u_2(x) \\ \vdots \\ u_n(x) \end{bmatrix}$ 是一组以 $x$ 为自变量的函数,定义域为 $D = [x_1, x_2]$,并且满足:

$$ \int_{x_1}^{x_2} u_i(x)^T u_j(x) = \left\{ \begin{array}{l} 0 \quad (i \ne j) \\ c \quad (i = j, c \ne 0) \end{array} \right. \quad (i,j=1,2,\cdots,n) $$

则称 $\begin{bmatrix} u_1(x) \\ u_2(x) \\ \vdots \\ u_n(x) \end{bmatrix}$ 是一个正交函数基。

假设 $\begin{bmatrix} \mathbf{u}_1 \\ \mathbf{u}_2 \\ \vdots \\ \mathbf{u}_{\infty} \end{bmatrix}$ 是一个无穷维度的正交基,那么该正交基中向量的线性组合可以表示任意维度的任意向量 $\mathbf{w}$(注意仅仅是可以表示而不是等同于):

$$ \mathbf{w} = a_1 \mathbf{u}_1 + a_2 \mathbf{u}_2 + \cdots + a_{\infty} \mathbf{u}_{\infty} $$

再次注意 $\mathbf{w}$ 可以表示任意维度的任意向量(可以将高维向量的若干分量置为 $0$ 来表示低维向量),而不能说 $\mathbf{w}$ 等于任意维度的任意向量,$\mathbf{w}$ 始终是一个无穷维度的向量,只有同一维度的向量才可以说相等。

同样地,假设 $\begin{bmatrix} u_1(x) \\ u_2(x) \\ \vdots \\ u_{\infty}(x) \end{bmatrix}$ 是一个无穷维度的正交函数基,那么该正交基中函数的线性组合可以表示任意函数 $f(x)$:

$$ f(x) = a_1 u_1(x) + a_2 u_2(x) + \cdots + a_{\infty} u_{\infty}(x) $$

傅里叶级数

傅里叶发现了一个以三角函数组成的无穷维度的正交函数基:

$$ \begin{bmatrix} 1 \\ \cos x \\ \sin x \\ \cos 2x \\ \sin 2x \\ \vdots \\ \cos \infty x \\ \sin \infty x \end{bmatrix} $$

因为三角函数的周期为 $2 \pi$,因此这个基中的函数定义域可以规定为 $D = [0, 2\pi]$。可以验证这个基中的每对函数在 $D$ 上的积分都为 $0$,比如:

$$ \int_{0}^{2\pi} \cos x \sin x \mathrm{d}x = \left. \dfrac{1}{2} \sin^2 x \right|_0^{2\pi} = 0 $$

由于这个基是无穷维度的,因此任何函数 $f(x)$ 都可以用这个正交函数基来表示:

$$ f(x) = a_0 + a_1 \cos x + b_1 \sin x + a_2 \cos 2x + b_2 \sin 2x + \cdots $$

上式就是傅里叶级数Fourier Series)。

如何求解上式的系数 $a_i$ 或 $b_i$ 呢?只需要在等式两边乘以系数对应的函数,然后积分即可。比如我们求 $a_1$,将上式两边乘以 $\cos x$,并积分(注意互为正交的两个函数的积的积分为 $0$):

\begin{align*} & \int_{0}^{2\pi} f(x) \cos x \mathrm{d}x = 0 + a_1 \int_{0}^{2\pi} \cos^2 x \mathrm{d}x + 0 + \cdots \\ \Longrightarrow \quad & a_1 = \dfrac{1}{\pi} \int_{0}^{2\pi} f(x) \cos x \mathrm{d}x \end{align*}

上式中 $\cos^2 x$ 的积分如下:

\begin{align*} \int_{0}^{2\pi} \cos^2 x \mathrm{d}x &= \int_{0}^{2\pi} \dfrac{1+\cos 2x}{2} \mathrm{d}x \\ &= \int_{0}^{2\pi} \dfrac{1}{2} \mathrm{d}x + \dfrac{1}{2} \int_{0}^{2\pi} \cos 2x \mathrm{d}x \\ &= \left. \left( \dfrac{x}{2} + \dfrac{1}{4} \sin 2x \right) \right| _{0}^{2\pi} \\ &= \left. \dfrac{2x + \sin 2x}{4} \right| _{0}^{2\pi} \\ &= \pi \end{align*}


关于正交和投影就介绍到这里,感谢阅读。

版权声明:本文为原创文章,转载请注明出处。http://cynhard.com/2018/10/15/LA-Orthogonality-and-Projection/

推荐文章