线性代数原文 MIT 18.06 线性代数笔记
矩阵论笔记来自 工程矩阵理论
综合线性代数 机器学习的数学基础
配合视频 线性代数 工程矩阵理论

文章目录

  • 十一、矩阵空间、秩1矩阵和小世界图
    • 1.矩阵空间
    • 2.秩一矩阵
    • 3.小世界图
  • 第十二讲:图和网络
    • 1.图和网络
  • 十三、复习一
  • 十四、正交向量与子空间
  • 十五、子空间投影
    • 1.最小二乘法

十一、矩阵空间、秩1矩阵和小世界图

1.矩阵空间

接上一讲,使用 3 × 3 3 \times 3 3×3矩阵举例,其矩阵空间记为 M M M。

则 M M M的一组基为:
[ 1 0 0 0 0 0 0 0 0 ] [ 0 1 0 0 0 0 0 0 0 ] [ 0 0 1 0 0 0 0 0 0 ] [ 0 0 0 1 0 0 0 0 0 ] [ 0 0 0 0 1 0 0 0 0 ] [ 0 0 0 0 0 1 0 0 0 ] [ 0 0 0 0 0 0 1 0 0 ] [ 0 0 0 0 0 0 0 1 0 ] [ 0 0 0 0 0 0 0 0 1 ] \begin{bmatrix} 1 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix} \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix} \begin{bmatrix} 0 & 0 & 1 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix} \\ \begin{bmatrix} 0 & 0 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix} \begin{bmatrix} 0 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix} \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & 0 \\ \end{bmatrix} \\ \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 1 & 0 & 0 \\ \end{bmatrix} \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 1 & 0 \\ \end{bmatrix} \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix} \\ ⎣⎡​100​000​000​⎦⎤​⎣⎡​000​100​000​⎦⎤​⎣⎡​000​000​100​⎦⎤​⎣⎡​010​000​000​⎦⎤​⎣⎡​000​010​000​⎦⎤​⎣⎡​000​000​010​⎦⎤​⎣⎡​001​000​000​⎦⎤​⎣⎡​000​001​000​⎦⎤​⎣⎡​000​000​001​⎦⎤​

易得, d i m M = 9 dim M=9 dimM=9。

所以可以得出,对上讲中的三阶对称矩阵空间有 d i m S = 6 dim S=6 dimS=6、上三角矩阵空间有 d i m U = 6 dim U=6 dimU=6、对角矩阵空间有 d i m D = 3 dim D=3 dimD=3

求并(intersect): S ∪ U = M , d i m ( S ∪ U ) = 9 S \cup U=M, dim(S \cup U)=9 S∪U=M,dim(S∪U)=9;

求交(sum): S ∩ U = D , d i m ( S ∩ U ) = 3 S \cap U=D, dim(S \cap U)=3 S∩U=D,dim(S∩U)=3;

可以看出: d i m S + d i m U = 12 = d i m ( S ∪ U ) + d i m ( S ∩ U ) dim S + dim U=12=dim(S \cup U) + dim(S \cap U) dimS+dimU=12=dim(S∪U)+dim(S∩U)。

另一个例子来自微分方程:

d 2 y d x 2 + y = 0 \frac{d^2y}{dx^2}+y=0 dx2d2y​+y=0,即 y ′ ′ + y = 0 y''+y=0 y′′+y=0

方程的解有: y = cos ⁡ x , y = sin ⁡ x , y = e i x , y = e − i x y=\cos{x}, \quad y=\sin{x}, \quad y=e^{ix}, \quad y=e^{-ix} y=cosx,y=sinx,y=eix,y=e−ix等等( e i x = cos ⁡ x + i sin ⁡ x , e − i x = cos ⁡ x − i sin ⁡ x e^{ix}=\cos{x}+i\sin{x}, \quad e^{-ix}=\cos{x}-i\sin{x} eix=cosx+isinx,e−ix=cosx−isinx)

而该方程的所有解: y = c 1 cos ⁡ x + c 2 sin ⁡ x y=c_1 \cos{x} + c_2 \sin{x} y=c1​cosx+c2​sinx。

所以,该方程的零空间的一组基为 cos ⁡ x , sin ⁡ x \cos{x}, \sin{x} cosx,sinx,零空间的维数为 2 2 2。同理 e i x , e − i x e^{ix}, e^{-ix} eix,e−ix可以作为另一组基。

2.秩一矩阵

2 × 3 2 \times 3 2×3矩阵 A = [ 1 4 5 2 8 10 ] = [ 1 2 ] [ 1 4 5 ] A=\begin{bmatrix}1&4&5\\2&8&10\end{bmatrix}=\begin{bmatrix}1\\2\end{bmatrix}\begin{bmatrix}1&4&5\end{bmatrix} A=[12​48​510​]=[12​][1​4​5​]。

且 d i m C ( A ) = 1 = d i m C ( A T ) dimC(A)=1=dimC(A^T) dimC(A)=1=dimC(AT),所有的秩一矩阵都可以化为 A = U V T A=UV^T A=UVT的形式,这里的 U , V U, V U,V均为列向量。

秩一矩阵类似“积木”,可以搭建任何矩阵,如对于一个 5 × 17 5 \times 17 5×17秩为 4 4 4的矩阵,只需要 4 4 4个秩一矩阵就可以组合出来。

令 M M M代表所有 5 × 17 5 \times 17 5×17, M M M中所有秩 4 4 4矩阵组成的集合并不是一个子空间,通常两个秩四矩阵相加,其结果并不是秩四矩阵。

现在,在 R 4 \mathbb{R}^4 R4空间中有向量 v = [ v 1 v 2 v 3 v 4 ] v=\begin{bmatrix}v_1\\v_2\\v_3\\v_4\end{bmatrix} v=⎣⎢⎢⎡​v1​v2​v3​v4​​⎦⎥⎥⎤​,取 R 4 \mathbb{R}^4 R4中满足 v 1 + v 2 + v 3 + v 4 = 0 v_1+v_2+v_3+v_4=0 v1​+v2​+v3​+v4​=0的所有向量组成一个向量空间 S S S,则 S S S是一个向量子空间。

易看出,不论是使用系数乘以该向量,或是用两个满足条件的向量相加,其结果仍然落在分量和为零的向量空间中。

求 S S S的维数:

从另一个角度看, v 1 + v 2 + v 3 + v 4 = 0 v_1+v_2+v_3+v_4=0 v1​+v2​+v3​+v4​=0等价于 [ 1 1 1 1 ] [ v 1 v 2 v 3 v 4 ] = 0 \begin{bmatrix}1&1&1&1\end{bmatrix}\begin{bmatrix}v_1\\v_2\\v_3\\v_4\end{bmatrix}=0 [1​1​1​1​]⎣⎢⎢⎡​v1​v2​v3​v4​​⎦⎥⎥⎤​=0,则 S S S就是 A = [ 1 1 1 1 ] A=\begin{bmatrix}1&1&1&1\end{bmatrix} A=[1​1​1​1​]的零空间。

r a n k ( A ) = 1 rank(A)=1 rank(A)=1,则对其零空间有 r a n k ( N ( A ) ) = n − r = 3 = d i m N ( A ) rank(N(A))=n-r=3=dim N(A) rank(N(A))=n−r=3=dimN(A),则 S S S的维数是 3 3 3。

顺便看一下 1 × 4 1 \times 4 1×4矩阵 A A A的四个基本子空间:

行空间: d i m C ( A T ) = 1 dim C(A^T)=1 dimC(AT)=1,其中的一组基是 [ 1 1 1 1 ] \begin{bmatrix}1\\1\\1\\1\end{bmatrix} ⎣⎢⎢⎡​1111​⎦⎥⎥⎤​;

零空间: d i m N ( A ) = 3 dim N(A)=3 dimN(A)=3,其中的一组基是 [ − 1 1 0 0 ] [ − 1 0 1 0 ] [ − 1 0 0 1 ] \begin{bmatrix}-1\\1\\0\\0\end{bmatrix}\begin{bmatrix}-1\\0\\1\\0\end{bmatrix}\begin{bmatrix}-1\\0\\0\\1\end{bmatrix} ⎣⎢⎢⎡​−1100​⎦⎥⎥⎤​⎣⎢⎢⎡​−1010​⎦⎥⎥⎤​⎣⎢⎢⎡​−1001​⎦⎥⎥⎤​

列空间: d i m C ( A ) = 1 dim C(A)=1 dimC(A)=1,其中一组基是 [ 1 ] \begin{bmatrix}1\end{bmatrix} [1​],可以看出列空间就是整个 R 1 \mathbb{R}^1 R1空间。

左零空间: d i m N ( A T ) = 0 dim N(A^T)=0 dimN(AT)=0,因为 A A A转置后没有非零的 v v v可以使 A v = 0 Av=0 Av=0成立,就是 [ 0 ] \begin{bmatrix}0\end{bmatrix} [0​]。

综上, d i m C ( A T ) + d i m N ( A ) = 4 = n , d i m C ( A ) + d i m N ( A T ) = 1 = m dim C(A^T)+dim N(A)=4=n, dim C(A)+dim N(A^T)=1=m dimC(AT)+dimN(A)=4=n,dimC(A)+dimN(AT)=1=m

对于秩一矩阵 A = α β H A=\alpha \beta^H A=αβH的 J o r d a n Jordan Jordan标准形 J J J:

  • 若 α \alpha α或 β \beta β中有一个为零向量,那么 r ( A ) = 0 r(A)=0 r(A)=0, J J J为零矩阵
  • 若都不为零向量,那么 r ( A ) = 1 ⇒ r ( J ) = 1 ⇒ J 1 = [ ∗ 0 ⋱ 0 ] 或 J 2 = [ 0 1 0 ⋱ 0 ] r(A)=1 \Rightarrow r(J)=1 \Rightarrow J_1=\begin{bmatrix}*&&&\\&0&&\\&&\ddots&\\&&&0\end{bmatrix}或J_2=\begin{bmatrix}0&1&&\\&0&&\\&&\ddots&\\&&&0\end{bmatrix} r(A)=1⇒r(J)=1⇒J1​=⎣⎢⎢⎡​∗​0​⋱​0​⎦⎥⎥⎤​或J2​=⎣⎢⎢⎡​0​10​⋱​0​⎦⎥⎥⎤​, t r a ( J 1 ) = 1 , t r a ( J 2 ) = 0 tra(J_1)=1,tra(J_2)=0 tra(J1​)=1,tra(J2​)=0, t r a ( A ) = t r a ( α β H ) = t r a ( A B ) = t r a ( B A ) t r a ( β H α ) = β H α 是 一 个 数 字 β H α = < α , β > tra(A)=tra(\alpha \beta^H)\stackrel{tra(AB)=tra(BA)}{=}tra(\beta^H \alpha)\stackrel{\beta^H \alpha是一个数字}{=}\beta^H \alpha=<\alpha,\beta> tra(A)=tra(αβH)=tra(AB)=tra(BA)tra(βHα)=βHα是一个数字βHα=<α,β>,因此,当 α \alpha α和 β \beta β正交时, J = J 2 J=J_2 J=J2​,否则 J = J 1 J=J_1 J=J1​

一些结论:

  1. 秩一矩阵 A A A, R ( A ) = 1 R(A)=1 R(A)=1,所以它的特征值对角阵 R ( Λ ) = 1 R(\Lambda)=1 R(Λ)=1,于是 Λ \Lambda Λ只有一个非零对角元,即 λ = 0 \lambda=0 λ=0是 A A A的 n − 1 n-1 n−1重特征值
  2. 秩一矩阵 A = a a T A=aa^T A=aaT的唯一非零特征值 λ = a T a \lambda=a^Ta λ=aTa,且其对应的特征向量为 a a a
  3. A B AB AB的迹 B A BA BA的迹相等

3.小世界图

图(graph)由节点(node)与边(edge)组成。

假设,每个人是图中的一个节点,如果两个人为朋友关系,则在这两个人的节点间添加一条边,通常来说,从一个节点到另一个节点只需要不超过 6 6 6步(即六条边)即可到达。(六度空间理论)

第十二讲:图和网络

1.图和网络

import networkx as nx
import matplotlib.pyplot as plt
%matplotlib inlinedg = nx.DiGraph()
dg.add_edges_from([(1,2), (2,3), (1,3), (1,4), (3,4)])
edge_labels = {(1, 2): 1, (1, 3): 3, (1, 4): 4, (2, 3): 2, (3, 4): 5}pos = nx.spring_layout(dg)
nx.draw_networkx_edge_labels(dg,pos,edge_labels=edge_labels, font_size=16)
nx.draw_networkx_labels(dg, pos, font_size=20, font_color='w')
nx.draw(dg, pos, node_size=1500, node_color="gray")

该图由4个节点与5条边组成,

n o d e 1 n o d e 2 n o d e 3 n o d e 4 e d g e 1 − 1 1 0 0 e d g e 2 0 − 1 1 0 e d g e 3 − 1 0 1 0 e d g e 4 − 1 0 0 1 e d g e 5 0 0 − 1 1 \begin{array}{c | c c c c} & node_1 & node_2 & node_3 & node_4 \\ \hline edge_1 & -1 & 1 & 0 & 0 \\ edge_2 & 0 & -1 & 1 & 0 \\ edge_3 & -1 & 0 & 1 & 0 \\ edge_4 & -1 & 0 & 0 & 1 \\ edge_5 & 0 & 0 & -1 & 1 \\ \end{array} edge1​edge2​edge3​edge4​edge5​​node1​−10−1−10​node2​1−1000​node3​0110−1​node4​00011​​

我们可以建立 5 × 4 5 \times 4 5×4矩阵
A = [ − 1 1 0 0 0 − 1 1 0 − 1 0 1 0 − 1 0 0 1 0 0 − 1 1 ] A= \begin{bmatrix} -1 & 1 & 0 & 0 \\ 0 & -1 & 1 & 0 \\ -1 & 0 & 1 & 0 \\ -1 & 0 & 0 & 1 \\ 0 & 0 & -1 & 1 \\ \end{bmatrix} A=⎣⎢⎢⎢⎢⎡​−10−1−10​1−1000​0110−1​00011​⎦⎥⎥⎥⎥⎤​

观察前三行,易看出这三个行向量线性相关,也就是这三个向量可以形成回路(loop)。

现在,解 A x = 0 Ax=0 Ax=0:
A x = [ − 1 1 0 0 0 − 1 1 0 − 1 0 1 0 − 1 0 0 1 0 0 − 1 1 ] [ x 1 x 2 x 3 x 4 ] Ax= \begin{bmatrix} -1 & 1 & 0 & 0 \\ 0 & -1 & 1 & 0 \\ -1 & 0 & 1 & 0 \\ -1 & 0 & 0 & 1 \\ 0 & 0 & -1 & 1 \\ \end{bmatrix} \begin{bmatrix} x_1\\x_2\\x_3\\x_4\\ \end{bmatrix} Ax=⎣⎢⎢⎢⎢⎡​−10−1−10​1−1000​0110−1​00011​⎦⎥⎥⎥⎥⎤​⎣⎢⎢⎡​x1​x2​x3​x4​​⎦⎥⎥⎤​

展开得到:
[ x 2 − x 1 x 3 − x 2 x 3 − x 1 x 4 − x 1 x 4 − x 3 ] = [ 0 0 0 0 0 ] \begin{bmatrix}x_2-x_1 \\x_3-x_2 \\x_3-x_1 \\x_4-x_1 \\x_4-x_3 \\ \end{bmatrix}=\begin{bmatrix}0\\0\\0\\0\\0\\ \end{bmatrix} ⎣⎢⎢⎢⎢⎡​x2​−x1​x3​−x2​x3​−x1​x4​−x1​x4​−x3​​⎦⎥⎥⎥⎥⎤​=⎣⎢⎢⎢⎢⎡​00000​⎦⎥⎥⎥⎥⎤​

引入矩阵的实际意义:将 x = [ x 1 x 2 x 3 x 4 ] x=\begin{bmatrix}x_1 & x_2 & x_3 & x_4\end{bmatrix} x=[x1​​x2​​x3​​x4​​]设为各节点电势(Potential at the Nodes)。

则式子中的诸如 x 2 − x 1 x_2-x_1 x2​−x1​的元素,可以看做该边上的电势差(Potential Differences)。

容易看出其中一个解 x = [ 1 1 1 1 ] x=\begin{bmatrix}1\\1\\1\\1\end{bmatrix} x=⎣⎢⎢⎡​1111​⎦⎥⎥⎤​,即等电势情况,此时电势差为 0 0 0。

化简 A A A易得 r a n k ( A ) = 3 rank(A)=3 rank(A)=3,所以其零空间维数应为 n − r = 4 − 3 = 1 n-r=4-3=1 n−r=4−3=1,即 [ 1 1 1 1 ] \begin{bmatrix}1\\1\\1\\1\end{bmatrix} ⎣⎢⎢⎡​1111​⎦⎥⎥⎤​就是其零空间的一组基。

其零空间的物理意义为,当电位相等时,不存在电势差,图中无电流。

当我们把图中节点 4 4 4接地后,节点 4 4 4上的电势为 0 0 0,此时的
A = [ − 1 1 0 0 − 1 1 − 1 0 1 − 1 0 0 0 0 − 1 ] A= \begin{bmatrix} -1 & 1 & 0 \\ 0 & -1 & 1 \\ -1 & 0 & 1 \\ -1 & 0 & 0 \\ 0 & 0 & -1 \\ \end{bmatrix} A=⎣⎢⎢⎢⎢⎡​−10−1−10​1−1000​0110−1​⎦⎥⎥⎥⎥⎤​,各列线性无关, r a n k ( A ) = 3 rank(A)=3 rank(A)=3。

现在看看 A T y = 0 A^Ty=0 ATy=0(这是应用数学里最常用的式子):

A T y = 0 = [ − 1 0 − 1 − 1 0 1 − 1 0 0 0 0 1 1 0 − 1 0 0 0 1 1 ] [ y 1 y 2 y 3 y 4 y 5 ] = [ 0 0 0 0 ] A^Ty=0=\begin{bmatrix}-1 & 0 & -1 & -1 & 0 \\1 & -1 & 0 & 0 & 0 \\0 & 1 & 1 & 0 & -1 \\0 & 0 & 0 & 1 & 1 \\ \end{bmatrix}\begin{bmatrix}y_1\\y_2\\y_3\\y_4\\y_5\end{bmatrix}=\begin{bmatrix}0\\0\\0\\0\end{bmatrix} ATy=0=⎣⎢⎢⎡​−1100​0−110​−1010​−1001​00−11​⎦⎥⎥⎤​⎣⎢⎢⎢⎢⎡​y1​y2​y3​y4​y5​​⎦⎥⎥⎥⎥⎤​=⎣⎢⎢⎡​0000​⎦⎥⎥⎤​,对于转置矩阵有 d i m N ( A T ) = m − r = 5 − 3 = 2 dim N(A^T)=m-r=5-3=2 dimN(AT)=m−r=5−3=2。

接着说上文提到的的电势差,矩阵 C C C将电势差与电流联系起来,电流与电势差的关系服从欧姆定律:边上的电流值是电势差的倍数,这个倍数就是边的电导(conductance)即电阻(resistance)的倒数。

电 势 差 → 欧 姆 定 律 矩 阵 C 各 边 上 的 电 流 y 1 , y 2 , y 3 , y 4 , y 5 电势差 \xrightarrow[欧姆定律]{矩阵C} 各边上的电流y_1, y_2, y_3, y_4, y_5 电势差矩阵C 欧姆定律​各边上的电流y1​,y2​,y3​,y4​,y5​,而 A T y = 0 A^Ty=0 ATy=0的另一个名字叫做“基尔霍夫电流定律”(Kirchoff’s Law, 简称KCL)。

再把图拿下来观察:

import networkx as nx
import matplotlib.pyplot as plt
%matplotlib inlinedg = nx.DiGraph()
dg.add_edges_from([(1,2), (2,3), (1,3), (1,4), (3,4)])
edge_labels = {(1, 2): 1, (1, 3): 3, (1, 4): 4, (2, 3): 2, (3, 4): 5}pos = nx.spring_layout(dg)
nx.draw_networkx_edge_labels(dg,pos,edge_labels=edge_labels, font_size=16)
nx.draw_networkx_labels(dg, pos, font_size=20, font_color='w')
nx.draw(dg, pos, node_size=1500, node_color="gray")

将 A T y = 0 A^Ty=0 ATy=0中的方程列出来:
{ y 1 + y 3 + y 4 = 0 y 1 − y 2 = 0 y 2 + y 3 − y 5 = 0 y 4 − y 5 = 0 \left\{ \begin{aligned} y_1 + y_3 + y_4 &= 0 \\ y_1 - y_2 &= 0 \\ y_2 + y_3 - y_5 &= 0 \\ y_4 - y_5 &= 0 \\ \end{aligned} \right. ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧​y1​+y3​+y4​y1​−y2​y2​+y3​−y5​y4​−y5​​=0=0=0=0​

对比看 A T y = 0 A^Ty=0 ATy=0的第一个方程, − y 1 − y 3 − y 4 = 0 -y_1-y_3-y_4=0 −y1​−y3​−y4​=0,可以看出这个方程是关于节点 1 1 1上的电流的,方程指出节点 1 1 1上的电流和为零,基尔霍夫定律是一个平衡方程、守恒定律,它说明了流入等于流出,电荷不会在节点上累积。

对于 A T A^T AT,有上文得出其零空间的维数是 2 2 2,则零空间的基应该有两个向量。

  • 现在假设 y 1 = 1 y_1=1 y1​=1,也就是令 1 1 1安培的电流在边 1 1 1上流动;
  • 由图看出 y 2 y_2 y2​也应该为 1 1 1;
  • 再令 y 3 = − 1 y_3=-1 y3​=−1,也就是让 1 1 1安培的电流流回节点 1 1 1;
  • 令 y 4 = y 5 = 0 y_4=y_5=0 y4​=y5​=0;

得到一个符合KCL的向量 [ 1 1 − 1 0 0 ] \begin{bmatrix}1\\1\\-1\\0\\0\end{bmatrix} ⎣⎢⎢⎢⎢⎡​11−100​⎦⎥⎥⎥⎥⎤​,代回方程组发现此向量即为一个解,这个解发生在节点 1 , 2 , 3 1,2,3 1,2,3组成的回路中,该解即为零空间的一个基。

根据上一个基的经验,可以利用 1 , 3 , 4 1,3,4 1,3,4组成的节点求另一个基:

  • 令 y 1 = y 2 = 0 y_1=y_2=0 y1​=y2​=0;
  • 令 y 3 = 1 y_3=1 y3​=1;
  • 由图得 y 5 = 1 y_5=1 y5​=1;
  • 令 y 4 = − 1 y_4=-1 y4​=−1;

得到令一个符合KCL的向量 [ 0 0 1 − 1 1 ] \begin{bmatrix}0\\0\\1\\-1\\1\end{bmatrix} ⎣⎢⎢⎢⎢⎡​001−11​⎦⎥⎥⎥⎥⎤​,代回方程可知此为另一个解。

则 N ( A T ) N(A^T) N(AT)的一组基为 [ 1 1 − 1 0 0 ] [ 0 0 1 − 1 1 ] \begin{bmatrix}1\\1\\-1\\0\\0\end{bmatrix}\quad\begin{bmatrix}0\\0\\1\\-1\\1\end{bmatrix} ⎣⎢⎢⎢⎢⎡​11−100​⎦⎥⎥⎥⎥⎤​⎣⎢⎢⎢⎢⎡​001−11​⎦⎥⎥⎥⎥⎤​。

看图,利用节点 1 , 2 , 3 , 4 1,2,3,4 1,2,3,4组成的大回路(即边 1 , 2 , 5 , 4 1,2,5,4 1,2,5,4):

  • 令 y 3 = 0 y_3=0 y3​=0;
  • 令 y 1 = 1 y_1=1 y1​=1;
  • 则由图得 y 2 = 1 , y 5 = 1 , y 4 = − 1 y_2=1, y_5=1, y_4=-1 y2​=1,y5​=1,y4​=−1;

得到符合KCL的向量 [ 1 1 0 − 1 1 ] \begin{bmatrix}1\\1\\0\\-1\\1\end{bmatrix} ⎣⎢⎢⎢⎢⎡​110−11​⎦⎥⎥⎥⎥⎤​,易看出此向量为求得的两个基之和。

接下来观察 A A A的行空间,即 A T A^T AT的列空间,方便起见我们直接计算
A T = [ − 1 0 − 1 − 1 0 1 − 1 0 0 0 0 1 1 0 − 1 0 0 0 1 1 ] A^T= \begin{bmatrix} -1 & 0 & -1 & -1 & 0 \\ 1 & -1 & 0 & 0 & 0 \\ 0 & 1 & 1 & 0 & -1 \\ 0 & 0 & 0 & 1 & 1 \\ \end{bmatrix} AT=⎣⎢⎢⎡​−1100​0−110​−1010​−1001​00−11​⎦⎥⎥⎤​
的列空间。

易从基的第一个向量看出前三列 A T A^T AT的线性相关,则 A T A^T AT的主列为第 1 , 2 , 4 1,2,4 1,2,4列,对应在图中就是边 1 , 2 , 4 1,2,4 1,2,4,可以发现这三条边没有组成回路,则在这里可以说线性无关等价于没有回路。由 4 4 4个节点与 3 3 3条边组成的图没有回路,就表明 A T A^T AT的对应列向量线性无关,也就是节点数减一( r a n k = n o d e s − 1 rank=nodes-1 rank=nodes−1)条边线性无关。另外,没有回路的图也叫作树(Tree)。

再看左零空间的维数公式: d i m N ( A T ) = m − r dim N(A^T)=m-r dimN(AT)=m−r,左零空间的维数就是相互无关的回路的数量,于是得到 l o o p s = e d g e s − ( n o d e s − 1 ) loops=edges-(nodes-1) loops=edges−(nodes−1),整理得:

n o d e s − e d g e s + l o o p s = 1 nodes-edges+loops=1 nodes−edges+loops=1

此等式对任何图均有效,任何图都有此拓扑性质,这就是著名的欧拉公式(Euler’s Formula)。 零 维 ( 节 点 ) − 一 维 ( 边 ) + 二 维 ( 回 路 ) = 1 零维(节点)-一维(边)+二维(回路)=1 零维(节点)−一维(边)+二维(回路)=1便于记忆。

总结:

  • 将电势记为 e e e,则在引入电势的第一步中,有 e = A x e=Ax e=Ax;
  • 电势差导致电流产生, y = C e y=Ce y=Ce;
  • 电流满足基尔霍夫定律方程, A T y = 0 A^Ty=0 ATy=0;

这些是在无电源情况下的方程。

电源可以通过:在边上加电池(电压源),或在节点上加外部电流 两种方式接入。

如果在边上加电池,会体现在 e = A x e=Ax e=Ax中;如果在节点上加电流,会体现在 A T y = f A^Ty=f ATy=f中, f f f向量就是外部电流。

将以上三个等式连起来得到 A T C A x = f A^TCAx=f ATCAx=f。另外,最后一个方程是一个平衡方程,还需要注意的是,方程仅描述平衡状态,方程并不考虑时间。最后, A T A A^TA ATA是一个对称矩阵。

十三、复习一

  1. 令 u , v , w u, v, w u,v,w是 R 7 \mathbb{R}^7 R7空间内的非零向量:则 u , v , w u, v, w u,v,w生成的向量空间可能是 1 , 2 , 3 1, 2, 3 1,2,3维的。

  2. 有一个 5 × 3 5 \times 3 5×3矩阵 U U U,该矩阵为阶梯矩阵(echelon form),有 3 3 3个主元:则能够得到该矩阵的秩为 3 3 3,即三列向量线性无关,不存在非零向量使得三列的线性组合为零向量,所以该矩阵的零空间应为 [ 0 0 0 ] \begin{bmatrix}0\\0\\0\\ \end{bmatrix} ⎣⎡​000​⎦⎤​。

  3. 接上一问,有一个 10 × 3 10 \times 3 10×3矩阵 B = [ U 2 U ] B=\begin{bmatrix}U\\2U \end{bmatrix} B=[U2U​],则化为最简形式(阶梯矩阵)应为 [ U 0 ] \begin{bmatrix}U\\0 \end{bmatrix} [U0​], r a n k ( B ) = 3 rank(B)=3 rank(B)=3。

  4. 接上一问,有一个矩阵型为 C = [ U U U 0 ] C=\begin{bmatrix}U & U \\ U & 0 \end{bmatrix} C=[UU​U0​],则化为最简形式应为 [ U 0 0 U ] \begin{bmatrix}U & 0 \\ 0 & U \end{bmatrix} [U0​0U​], r a n k ( C ) = 6 rank(C)=6 rank(C)=6。矩阵 C C C为 10 × 6 10 \times 6 10×6矩阵, d i m N ( C T ) = m − r = 4 dim N(C^T)=m-r=4 dimN(CT)=m−r=4。

  5. 有 A x = [ 2 4 2 ] Ax=\begin{bmatrix}2\\4\\2\\ \end{bmatrix} Ax=⎣⎡​242​⎦⎤​,并且 x = [ 2 0 0 ] + c [ 1 1 0 ] + d [ 0 0 1 ] x=\begin{bmatrix}2\\0\\0\\ \end{bmatrix}+c\begin{bmatrix}1\\1\\0\\ \end{bmatrix}+d\begin{bmatrix}0\\0\\1 \end{bmatrix} x=⎣⎡​200​⎦⎤​+c⎣⎡​110​⎦⎤​+d⎣⎡​001​⎦⎤​,则等号右侧 b b b向量的列数应为 A A A的行数,且解的列数应为 A A A的列数,所以 A A A是一个 3 × 3 3 \times 3 3×3矩阵。从解的结构可知自由元有两个,则 r a n k ( A ) = 1 , d i m N ( A ) = 2 rank(A)=1, dim N(A)=2 rank(A)=1,dimN(A)=2。从解的第一个向量得出,矩阵 A A A的第一列是 [ 1 2 1 ] \begin{bmatrix}1\\2\\1 \end{bmatrix} ⎣⎡​121​⎦⎤​;解的第二个向量在零空间中,说明第二列与第一列符号相反,所以矩阵第二列是 [ − 1 − 2 − 1 ] \begin{bmatrix}-1\\-2\\-1 \end{bmatrix} ⎣⎡​−1−2−1​⎦⎤​;解的第三个向量在零空间中,说明第三列为零向量;综上, A = [ 1 − 1 0 2 − 2 0 1 − 1 0 ] A=\begin{bmatrix}1 & -1 & 0\\ 2 & -2 & 0\\ 1 & -1 & 0\\ \end{bmatrix} A=⎣⎡​121​−1−2−1​000​⎦⎤​。

  6. 接上一问,如何使得 A x = b Ax=b Ax=b有解?即使 b b b在矩阵 A A A的列空间中。易知 A A A的列空间型为 c [ 1 2 1 ] c\begin{bmatrix}1\\2\\1\\ \end{bmatrix} c⎣⎡​121​⎦⎤​,所以使 b b b为向量 [ 1 2 1 ] \begin{bmatrix}1\\2\\1\\ \end{bmatrix} ⎣⎡​121​⎦⎤​的倍数即可。

  7. 有一方阵的零空间中只有零向量,则其左零空间也只有零向量。

  8. 由 5 × 5 5 \times 5 5×5矩阵组成的矩阵空间,其中的可逆矩阵能否构成子空间?两个可逆矩阵相加的结果并不一定可逆,况且零矩阵本身并不包含在可逆矩阵中。其中的奇异矩阵(singular matrix,非可逆矩阵)也不能组成子空间,因为其相加的结果并不一定能够保持不可逆。

  9. 如果 B 2 = 0 B^2=0 B2=0,并不能得出 B = 0 B=0 B=0,反例: [ 0 1 0 0 ] \begin{bmatrix}0 & 1\\ 0 & 0\\ \end{bmatrix} [00​10​],这个矩阵经常会被用作反例

  10. n × n n \times n n×n矩阵的列向量线性无关,则是否 ∀ b , A x = b \forall b, Ax=b ∀b,Ax=b有解?是的,因为方阵各列线性无关,所以方阵满秩,它是可逆矩阵,肯定有解


  11. B = [ 1 1 0 0 1 0 1 0 1 ] [ 1 0 − 1 2 0 1 1 − 1 0 0 0 0 ] B= \begin{bmatrix} 1 & 1 & 0 \\ 0 & 1 & 0 \\ 1 & 0 & 1 \\ \end{bmatrix} \begin{bmatrix} 1 & 0 & -1 & 2 \\ 0 & 1 & 1 & -1 \\ 0 & 0 & 0 & 0 \\ \end{bmatrix} B=⎣⎡​101​110​001​⎦⎤​⎣⎡​100​010​−110​2−10​⎦⎤​,在不解出 B B B的情况下,求 B B B的零空间。可以观察得出前一个矩阵是可逆矩阵,设 B = C D B=CD B=CD,则求零空间 B x = 0 , C D x = 0 Bx=0, CDx=0 Bx=0,CDx=0,而 C C C是可逆矩阵,则等式两侧同时乘以 C − 1 C^{-1} C−1有 C − 1 C D x = D x = 0 C^{-1}CDx=Dx=0 C−1CDx=Dx=0,所以当 C C C为可逆矩阵时,有 N ( C D ) = N ( D ) N(CD)=N(D) N(CD)=N(D),即左乘逆矩阵不会改变零空间。本题转化为求 D D D的零空间, N ( B ) N(B) N(B)的基为
    [ − F I ] \begin{bmatrix}-F\\I\\ \end{bmatrix} [−FI​],也就是 [ 1 − 1 1 0 ] [ − 2 1 0 1 ] \begin{bmatrix}1\\-1\\1\\0 \end{bmatrix}\quad\begin{bmatrix}-2\\1\\0\\1\end{bmatrix} ⎣⎢⎢⎡​1−110​⎦⎥⎥⎤​⎣⎢⎢⎡​−2101​⎦⎥⎥⎤​

  12. 接上题,求 B x = [ 1 0 1 ] Bx=\begin{bmatrix}1\\0\\1\\ \end{bmatrix} Bx=⎣⎡​101​⎦⎤​的通解。观察 B = C D B=CD B=CD,易得 B B B矩阵的第一列为 [ 1 0 1 ] \begin{bmatrix}1\\0\\1\\ \end{bmatrix} ⎣⎡​101​⎦⎤​,恰好与等式右边一样,所以 [ 1 0 0 0 ] \begin{bmatrix}1\\0\\0\\0\\ \end{bmatrix} ⎣⎢⎢⎡​1000​⎦⎥⎥⎤​可以作为通解中的特解部分,再利用上一问中求得的零空间的基,得到通解
    x = [ 1 0 0 0 ] + c 1 [ 1 − 1 1 0 ] + c 2 [ − 2 1 0 1 ] x= \begin{bmatrix}1\\0\\0\\0\\ \end{bmatrix}+ c_1\begin{bmatrix}1\\-1\\1\\0 \end{bmatrix}+c_2\begin{bmatrix}-2\\1\\0\\1\end{bmatrix} x=⎣⎢⎢⎡​1000​⎦⎥⎥⎤​+c1​⎣⎢⎢⎡​1−110​⎦⎥⎥⎤​+c2​⎣⎢⎢⎡​−2101​⎦⎥⎥⎤​

  13. 对于任意方阵,其行空间等于列空间?不成立,可以使用 [ 0 1 0 0 ] \begin{bmatrix}0 & 1\\ 0 & 0\\ \end{bmatrix} [00​10​]作为反例,其行空间是向量 [ 0 1 ] \begin{bmatrix}0 & 1\\ \end{bmatrix} [0​1​]的任意倍数,而列空间是向量 [ 1 0 ] \begin{bmatrix}1 & 0\\ \end{bmatrix} [1​0​]的任意倍数。但是如果该方阵是对称矩阵,则成立。

  14. A A A与 − A -A −A的四个基本子空间相同。

  15. 如果 A , B A, B A,B的四个基本子空间相同,则 A , B A, B A,B互为倍数关系。不成立,如任意两个 n n n阶可逆矩阵,他们的列空间、行空间均为 R n \mathbb{R}^n Rn,他们的零空间、左零空间都只有零向量,所以他们的四个基本子空间相同,但是并不一定具有倍数关系。

  16. 如果交换矩阵的某两行,则其行空间与零空间保持不变,而列空间与左零空间均已改变。

  17. 为什么向量 v = [ 1 2 3 ] v=\begin{bmatrix}1\\2\\3 \end{bmatrix} v=⎣⎡​123​⎦⎤​不能同时出现在矩阵的行空间与零空间中?令 A [ 1 2 3 ] = [ 0 0 0 ] A\begin{bmatrix}1\\2\\3 \end{bmatrix}=\begin{bmatrix}0\\0\\0 \end{bmatrix} A⎣⎡​123​⎦⎤​=⎣⎡​000​⎦⎤​,很明显矩阵 A A A中不能出现值为 [ 1 2 3 ] \begin{bmatrix}1 & 2 & 3 \end{bmatrix} [1​2​3​]的行向量,否则无法形成等式右侧的零向量。这里引入正交(perpendicular)的概念,矩阵的行空间与零空间正交,它们仅共享零向量。

十四、正交向量与子空间

在四个基本子空间中,提到对于秩为r的 m × n m \times n m×n矩阵,其行空间( d i m C ( A T ) = r dim C(A^T)=r dimC(AT)=r)与零空间( d i m N ( A ) = n − r dim N(A)=n-r dimN(A)=n−r)同属于 R n \mathbb{R}^n Rn空间,其列空间( d i m C ( A ) = r dim C(A)=r dimC(A)=r)与左零空间( d i m N ( A T ) dim N(A^T) dimN(AT)=m-r)同属于 R m \mathbb{R}^m Rm空间。

对于向量 x , y x, y x,y,当 x T ⋅ y = 0 x^T \cdot y=0 xT⋅y=0即 x 1 y 1 + x 2 y x + ⋯ + x n y n = 0 x_1y_1+x_2y_x+\cdots+x_ny_n=0 x1​y1​+x2​yx​+⋯+xn​yn​=0时,有向量 x , y x, y x,y正交(vector orthogonal)。

毕达哥拉斯定理(Pythagorean theorem)中提到,直角三角形的三条边满足:

∥ x → ∥ 2 + ∥ y → ∥ 2 = ∥ x + y → ∥ 2 x T x + y T y = ( x + y ) T ( x + y ) x T x + y T y = x T x + y T y + x T y + y T x 0 = x T y + y T x 对 于 向 量 点 乘 , x T y = y T x 0 = 2 x T y x T y = 0 \begin{aligned} \left\|\overrightarrow{x}\right\|^2+\left\|\overrightarrow{y}\right\|^2 &= \left\|\overrightarrow{x+y}\right\|^2 \\ x^Tx+y^Ty &= (x+y)^T(x+y) \\ x^Tx+y^Ty &= x^Tx+y^Ty+x^Ty+y^Tx \\ 0 &= x^Ty+y^Tx \qquad 对于向量点乘,x^Ty=y^Tx \\ 0 &= 2x^Ty \\ x^Ty &=0 \end{aligned} ∥∥∥​x ∥∥∥​2+∥∥∥​y ​∥∥∥​2xTx+yTyxTx+yTy00xTy​=∥∥∥​x+y ​∥∥∥​2=(x+y)T(x+y)=xTx+yTy+xTy+yTx=xTy+yTx对于向量点乘,xTy=yTx=2xTy=0​

由此得出,两正交向量的点积为 0 0 0。另外, x , y x, y x,y可以为 0 0 0向量,由于 0 0 0向量与任意向量的点积均为零,所以 0 0 0向量与任意向量正交。

举个例子:
x = [ 1 2 3 ] , y = [ 2 − 1 0 ] , x + y = [ 3 1 3 ] x=\begin{bmatrix}1\\2\\3\end{bmatrix}, y=\begin{bmatrix}2\\-1\\0\end{bmatrix}, x+y=\begin{bmatrix}3\\1\\3\end{bmatrix} x=⎣⎡​123​⎦⎤​,y=⎣⎡​2−10​⎦⎤​,x+y=⎣⎡​313​⎦⎤​,有 ∥ x → ∥ 2 = 14 , ∥ y → ∥ 2 = 5 , ∥ x + y → ∥ 2 = 19 \left\| \overrightarrow{x} \right\|^2=14, \left\| \overrightarrow{y} \right\|^2=5, \left\| \overrightarrow{x+y} \right\|^2=19 ∥∥∥​x ∥∥∥​2=14,∥∥∥​y ​∥∥∥​2=5,∥∥∥​x+y ​∥∥∥​2=19,而 x T y = 1 × 2 + 2 × ( − 1 ) + 3 × 0 = 0 x^Ty=1\times2+2\times (-1)+3\times0=0 xTy=1×2+2×(−1)+3×0=0。

向量 S S S与向量 T T T正交,则意味着 S S S中的每一个向量都与 T T T中的每一个向量正交。若两个子空间正交,则它们一定不会相交于某个非零向量

现在观察行空间与零空间,零空间是 A x = 0 Ax=0 Ax=0的解,即 x x x若在零空间,则 A x Ax Ax为零向量;

而对于行空间,有 [ r o w 1 r o w 2 ⋮ r o w m ] [ x ] = [ 0 0 ⋮ 0 ] \begin{bmatrix}row_1\\row_2\\ \vdots \\row_m\end{bmatrix} \Bigg[x\Bigg]= \begin{bmatrix}0\\0\\ \vdots\\ 0\end{bmatrix} ⎣⎢⎢⎢⎡​row1​row2​⋮rowm​​⎦⎥⎥⎥⎤​[x]=⎣⎢⎢⎢⎡​00⋮0​⎦⎥⎥⎥⎤​,可以看出:
[ r o w 1 ] [ x ] = 0 [ r o w 2 ] [ x ] = 0 ⋮ [ r o w m ] [ x ] = 0 \begin{bmatrix}row_1\end{bmatrix}\Bigg[x\Bigg]=0 \\ \begin{bmatrix}row_2\end{bmatrix}\Bigg[x\Bigg]=0 \\ \vdots \\ \begin{bmatrix}row_m\end{bmatrix}\Bigg[x\Bigg]=0 \\ [row1​​][x]=0[row2​​][x]=0⋮[rowm​​][x]=0

所以这个等式告诉我们, x x x同 A A A中的所有行正交;

接下来还验证 x x x是否与 A A A中各行的线性组合正交,
{ c 1 ( r o w 1 ) T x = 0 c 2 ( r o w 2 ) T x = 0 ⋮ c n ( r o w m ) T x = 0 \begin{cases} c_1(row_1)^Tx=0 \\ c_2(row_2)^Tx=0 \\ \vdots \\ c_n(row_m)^Tx=0 \\ \end{cases} ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧​c1​(row1​)Tx=0c2​(row2​)Tx=0⋮cn​(rowm​)Tx=0​,各式相加得 ( c 1 r o w 1 + c 2 r o w 2 + ⋯ + c n r o w m ) T x = 0 (c_1row_1+c_2row_2+\cdots+c_nrow_m)^Tx=0 (c1​row1​+c2​row2​+⋯+cn​rowm​)Tx=0,得证。

我们可以说,行空间与零空间将 R n \mathbb{R}^n Rn分割为两个正交的子空间,同样的,列空间与左零空间将 R m \mathbb{R}^m Rm分割为两个正交的子空间

举例, A = [ 1 2 5 2 4 10 ] A=\begin{bmatrix}1&2&5\\2&4&10\end{bmatrix} A=[12​24​510​],则可知 m = 2 , n = 3 , r a n k ( A ) = 1 , d i m N ( A ) = 2 m=2, n=3, rank(A)=1, dim N(A)=2 m=2,n=3,rank(A)=1,dimN(A)=2。

有 A x = [ 1 2 5 2 4 10 ] [ x 1 x 2 x 3 ] = [ 0 0 ] Ax=\begin{bmatrix}1&2&5\\2&4&10\end{bmatrix}\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix} Ax=[12​24​510​]⎣⎡​x1​x2​x3​​⎦⎤​=[00​],解得零空间的一组基 x 1 = [ − 2 1 0 ] x 2 = [ − 5 0 1 ] x_1=\begin{bmatrix}-2\\1\\0\end{bmatrix}\quad x_2=\begin{bmatrix}-5\\0\\1\end{bmatrix} x1​=⎣⎡​−210​⎦⎤​x2​=⎣⎡​−501​⎦⎤​。

而行空间的一组基为 r = [ 1 2 5 ] r=\begin{bmatrix}1\\2\\5\end{bmatrix} r=⎣⎡​125​⎦⎤​,零空间与行空间正交,在本例中行空间也是零空间的法向量。

补充一点,我们把行空间与零空间称为 n n n维空间里的正交补(orthogonal complement),即零空间包含了所有与行空间正交的向量;同理列空间与左零空间为 m m m维空间里的正交补,即左零空间包含了所有与零空间正交的向量。

接下来看长方矩阵, m > n m>n m>n。对于这种矩阵, A x = b Ax=b Ax=b中经常混入一些包含“坏数据”的方程,虽然可以通过筛选的方法去掉一些我们不希望看到的方程,但是这并不是一个稳妥的方法。

于是,我们引入一个重要的矩阵: A T A A^TA ATA。这是一个 n × m n \times m n×m矩阵点乘 m × n m \times n m×n矩阵,其结果是一个 n × n n \times n n×n矩阵,应该注意的是,这也是一个对称矩阵,证明如下:

( A T A ) T = A T ( A T ) T = A T A (A^TA)^T=A^T(A^T)^T=A^TA (ATA)T=AT(AT)T=ATA

这一章节的核心就是 A T A x = A T b A^TAx=A^Tb ATAx=ATb,这个变换可以将“坏方程组”变为“好方程组”。

举例,有 [ 1 1 1 2 1 5 ] [ x 1 x 2 ] = [ b 1 b 2 b 3 ] \begin{bmatrix}1&1\\1&2\\1&5\end{bmatrix}\begin{bmatrix}x_1\\x_2\end{bmatrix}=\begin{bmatrix}b_1\\b_2\\b_3\end{bmatrix} ⎣⎡​111​125​⎦⎤​[x1​x2​​]=⎣⎡​b1​b2​b3​​⎦⎤​,只有当 [ b 1 b 2 b 3 ] \begin{bmatrix}b_1\\b_2\\b_3\end{bmatrix} ⎣⎡​b1​b2​b3​​⎦⎤​在矩阵的列空间时,方程才有解。

现在来看 [ 1 1 1 1 2 5 ] [ 1 1 1 2 1 5 ] = [ 3 8 8 30 ] \begin{bmatrix}1&1&1\\1&2&5\end{bmatrix}\begin{bmatrix}1&1\\1&2\\1&5\end{bmatrix}=\begin{bmatrix}3&8\\8&30\end{bmatrix} [11​12​15​]⎣⎡​111​125​⎦⎤​=[38​830​],可以看出此例中 A T A A^TA ATA是可逆的。然而并非所有 A T A A^TA ATA都是可逆的,如 [ 1 1 1 3 3 3 ] [ 1 3 1 3 1 3 ] = [ 3 9 9 27 ] \begin{bmatrix}1&1&1\\3&3&3\end{bmatrix}\begin{bmatrix}1&3\\1&3\\1&3\end{bmatrix}=\begin{bmatrix}3&9\\9&27\end{bmatrix} [13​13​13​]⎣⎡​111​333​⎦⎤​=[39​927​](注意到这是两个秩一矩阵相乘,其结果秩不会大于一)

先给出结论:

N ( A T A ) = N ( A ) r a n k ( A T A ) = r a n k ( A ) A T A 可 逆 当 且 仅 当 N ( A ) 为 零 向 量 , 即 A 的 列 线 性 无 关 N(A^TA)=N(A)\\ rank(A^TA)=rank(A)\\ A^TA可逆当且仅当N(A)为零向量,即A的列线性无关\\ N(ATA)=N(A)rank(ATA)=rank(A)ATA可逆当且仅当N(A)为零向量,即A的列线性无关

下一讲涉及投影,很重要。

十五、子空间投影

从 R 2 \mathbb{R}^2 R2空间讲起,有向量 a , b a, b a,b,做 b b b在 a a a上的投影 p p p,如图:

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import pandas as pdplt.style.use("seaborn-dark-palette")fig = plt.figure()
plt.axis('equal')
plt.axis([-7, 7, -6, 6])
plt.arrow(-4, -1, 8, 2, head_width=0.3, head_length=0.5, color='r', length_includes_head=True)
plt.arrow(0, 0, 2, 4, head_width=0.3, head_length=0.5, color='b', length_includes_head=True)
plt.arrow(0, 0, 48/17, 12/17, head_width=0.3, head_length=0.5, color='gray', length_includes_head=True)
plt.arrow(48/17, 12/17, 2-48/17, 4-12/17, head_width=0.3, head_length=0.5, color='g', length_includes_head=True)
# plt.plot([48/17], [12/17], 'o')
# y=1/4x
# y=-4x+12
# x=48/17
# y=12/17
plt.annotate('b', xy=(1, 2), xytext=(-30, 15), textcoords='offset points', size=20, arrowprops=dict(arrowstyle="->"))
plt.annotate('a', xy=(-1, -0.25), xytext=(15, -30), textcoords='offset points', size=20, arrowprops=dict(arrowstyle="->"))
plt.annotate('e=b-p', xy=(2.5, 2), xytext=(30, 0), textcoords='offset points', size=20, arrowprops=dict(arrowstyle="->"))
plt.annotate('p=xa', xy=(2, 0.5), xytext=(-20, -40), textcoords='offset points', size=20, arrowprops=dict(arrowstyle="->"))
plt.grid()

plt.close(fig)

从图中我们知道,向量 e e e就像是向量 b , p b, p b,p之间的误差, e = b − p , e ⊥ p e=b-p, e \bot p e=b−p,e⊥p。 p p p在 a a a上,有 p = a x ‾ \underline{p=ax} p=ax​。

所以有 a T e = a T ( b − p ) = a T ( b − a x ) = 0 a^Te=a^T(b-p)=a^T(b-ax)=0 aTe=aT(b−p)=aT(b−ax)=0。关于正交的最重要的方程:

a T ( b − x a ) = 0 x a T a = a T b ‾ x = a T b a T a ‾ p = a a T b a T a a^T(b-xa)=0 \\ \underline{xa^Ta=a^Tb} \\ \underline{x=\frac{a^Tb}{a^Ta}} \\ p=a\frac{a^Tb}{a^Ta} aT(b−xa)=0xaTa=aTb​x=aTaaTb​​p=aaTaaTb​

从上面的式子可以看出,如果将 b b b变为 2 b 2b 2b则 p p p也会翻倍,如果将 a a a变为 2 a 2a 2a则 p p p不变。

投影矩阵为 P P P,则可以说投影矩阵作用与某个向量后,得到其投影向量, p = P b p=Pb p=Pb。

易看出 P = a a T a T a ‾ \underline{P=\frac{aa^T}{a^Ta}} P=aTaaaT​​,若 a a a是 n n n维列向量,则 P P P是一个 n × n n \times n n×n矩阵。给定一个向量,利用此公式可以求出这个向量对应的投影矩阵

观察投影矩阵 P P P的列空间, C ( P ) C(P) C(P)是一条通过 a a a的直线(因为 P x = p Px=p Px=p, P x Px Px表示的就是 P P P的列向量组的线性组合,即列空间,而 p = a x p=ax p=ax表示的是通过 a a a的直线),而 r a n k ( P ) = 1 rank(P)=1 rank(P)=1(一列乘以一行: a a T aa^T aaT是一个秩一矩阵(见第11讲),一列乘以一行得到的矩阵每一行都成比例(线性相关)。列向量 a a a是该投影矩阵 P P P的基。

投影矩阵的性质:

  • P = P T ‾ \underline{P=P^T} P=PT​,投影矩阵是一个对称矩阵
  • 如果对一个向量做两次投影,即 P P b PPb PPb,则其结果仍然与 P b Pb Pb相同,也就是 P 2 = P ‾ \underline{P^2=P} P2=P​。

为什么我们需要投影?因为就像上一讲中提到的,有些时候 A x = b Ax=b Ax=b无解,我们只能求出最接近的那个解。

A x Ax Ax总是在 A A A的列空间中,而 b b b却不一定,这是问题所在,所以我们可以将 b b b变为 A A A的列空间中最接近(因为 e = b − p e=b-p e=b−p是最小的误差)的那个向量,即将无解的 A x = b Ax=b Ax=b变为求有解的 A x ^ = p A\hat{x}=p Ax^=p( p p p是 b b b在 A A A的列空间中的投影, x ^ \hat{x} x^不再是那个不存在的 x x x,而是最接近的解)。

现在来看 R 3 \mathbb{R}^3 R3中的情形,将向量 b b b投影在平面 A A A上。同样的, p p p是向量 b b b在平面 A A A上的投影, e e e是垂直于平面 A A A的向量,即 b b b在平面 A A A法方向的分量。
设平面 A A A的一组基为 a 1 , a 2 a_1, a_2 a1​,a2​,则投影向量 p = x 1 ^ a 1 + x 2 ^ a 2 p=\hat{x_1}a_1+\hat{x_2}a_2 p=x1​^​a1​+x2​^​a2​,我们更倾向于写作 p = A x ^ p=A\hat{x} p=Ax^,这里如果我们求出 x ^ \hat{x} x^,则该解就是无解方程组最近似的解

现在问题的关键在于找 e = b − A x ^ e=b-A\hat{x} e=b−Ax^,使它垂直于平面,因此我们得到两个方程
{ a 1 T ( b − A x ^ ) = 0 a 2 T ( b − A x ^ ) = 0 \begin{cases}a_1^T(b-A\hat{x})=0\\ a_2^T(b-A\hat{x})=0\end{cases} {a1T​(b−Ax^)=0a2T​(b−Ax^)=0​,将方程组写成矩阵形式
[ a 1 T a 2 T ] ( b − A x ^ ) = [ 0 0 ] \begin{bmatrix}a_1^T\\a_2^T\end{bmatrix} (b-A\hat{x})= \begin{bmatrix}0\\0\end{bmatrix} [a1T​a2T​​](b−Ax^)=[00​],即 A T ( b − A x ^ ) = 0 A^T(b-A\hat{x})=0 AT(b−Ax^)=0。

比较该方程与 R 2 \mathbb{R}^2 R2中的投影方程,发现只是向量 a a a变为矩阵 A A A而已,本质上就是 A T e = 0 A^Te=0 ATe=0。所以, e e e在 A T A^T AT的零空间中( e ∈ N ( A T ) e\in N(A^T) e∈N(AT)),从前面几讲我们知道,左零空间 ⊥ \bot ⊥列空间,则有 e ⊥ C ( A ) e\bot C(A) e⊥C(A),与我们设想的一致。

再化简方程得 A T A x = A T b A^TAx=A^Tb ATAx=ATb,比较在 R 2 \mathbb{R}^2 R2中的情形, a T a a^Ta aTa是一个数字而 A T A A^TA ATA是一个 n n n阶方阵,而解出的 x x x可以看做两个数字的比值。现在在 R 3 \mathbb{R}^3 R3中,我们需要再次考虑:什么是 x ^ \hat{x} x^?投影是什么?投影矩阵又是什么?

  • 第一个问题: x ^ = ( A T A ) − 1 A T b \hat x=(A^TA)^{-1}A^Tb x^=(ATA)−1ATb;
  • 第二个问题: p = A x ^ = A ( A T A ) − 1 A T ‾ b p=A\hat x=\underline{A(A^TA)^{-1}A^T}b p=Ax^=A(ATA)−1AT​b,回忆在 R 2 \mathbb{R}^2 R2中的情形,下划线部分就是原来的 a a T a T a \frac{aa^T}{a^Ta} aTaaaT​;
  • 第三个问题:易看出投影矩阵就是下划线部分 P = A ( A T A ) − 1 A T P=A(A^TA)^{-1}A^T P=A(ATA)−1AT。

这里还需要注意一个问题, P = A ( A T A ) − 1 A T P=A(A^TA)^{-1}A^T P=A(ATA)−1AT是不能继续化简为 P = A A − 1 ( A T ) − 1 A T = E P=AA^{-1}(A^T)^{-1}A^T=E P=AA−1(AT)−1AT=E的,因为这里的 A A A并不是一个可逆方阵。
也可以换一种思路,如果 A A A是一个 n n n阶可逆方阵,则 A A A的列空间是整个 R n \mathbb{R}^n Rn空间,于是 b b b在 R n \mathbb{R}^n Rn上的投影矩阵确实变为了 E E E,因为 b b b已经在空间中了,其投影不再改变。

再来看投影矩阵 P P P的性质:

  • P = P T P=P^T P=PT:有
    [ A ( A T A ) − 1 A T ] T = A [ ( A T A ) − 1 ] T A T \left[A(A^TA)^{-1}A^T\right]^T=A\left[(A^TA)^{-1}\right]^TA^T [A(ATA)−1AT]T=A[(ATA)−1]TAT,而 ( A T A ) (A^TA) (ATA)是对称的,所以其逆也是对称的,所以有 A ( ( A T A ) − 1 ) T A T = A ( A T A ) − 1 A T A((A^TA)^{-1})^TA^T=A(A^TA)^{-1}A^T A((ATA)−1)TAT=A(ATA)−1AT,得证。
  • P 2 = P P^2=P P2=P:有
    [ A ( A T A ) − 1 A T ] [ A ( A T A ) − 1 A T ] = A ( A T A ) − 1 [ ( A T A ) ( A T A ) − 1 ] A T = A ( A T A ) − 1 A T \left[A(A^TA)^{-1}A^T\right]\left[A(A^TA)^{-1}A^T\right]=A(A^TA)^{-1}\left[(A^TA)(A^TA)^{-1}\right]A^T=A(A^TA)^{-1}A^T [A(ATA)−1AT][A(ATA)−1AT]=A(ATA)−1[(ATA)(ATA)−1]AT=A(ATA)−1AT,得证。

1.最小二乘法

接下看看投影的经典应用案例:最小二乘法拟合直线(least squares fitting by a line)。

我们需要找到距离图中三个点 ( 1 , 1 ) , ( 2 , 2 ) , ( 3 , 2 ) (1, 1), (2, 2), (3, 2) (1,1),(2,2),(3,2) 偏差最小的直线: b = C + D t b=C+Dt b=C+Dt。

plt.style.use("seaborn-dark-palette")fig = plt.figure()
plt.axis('equal')
plt.axis([-1, 4, -1, 3])
plt.axhline(y=0, c='black', lw='2')
plt.axvline(x=0, c='black', lw='2')plt.plot(1, 1, 'o', c='r')
plt.plot(2, 2, 'o', c='r')
plt.plot(3, 2, 'o', c='r')plt.annotate('(1, 1)', xy=(1, 1), xytext=(-40, 20), textcoords='offset points', size=14, arrowprops=dict(arrowstyle="->"))
plt.annotate('(2, 2)', xy=(2, 2), xytext=(-60, -5), textcoords='offset points', size=14, arrowprops=dict(arrowstyle="->"))
plt.annotate('(3, 2)', xy=(3, 2), xytext=(-18, 20), textcoords='offset points', size=14, arrowprops=dict(arrowstyle="->"))plt.grid()

plt.close(fig)

根据条件可以得到方程组
{ C + D = 1 C + 2 D = 2 C + 3 D = 2 \begin{cases} C+D&=1 \\ C+2D&=2 \\ C+3D&=2 \\ \end{cases} ⎩⎪⎨⎪⎧​C+DC+2DC+3D​=1=2=2​,写作矩阵形式
[ 1 1 1 2 1 3 ] [ C D ] = [ 1 2 2 ] \begin{bmatrix}1&1 \\1&2 \\1&3\\\end{bmatrix}\begin{bmatrix}C\\D\\\end{bmatrix}=\begin{bmatrix}1\\2\\2\\\end{bmatrix} ⎣⎡​111​123​⎦⎤​[CD​]=⎣⎡​122​⎦⎤​,也就是我们的 A x = b Ax=b Ax=b,很明显方程组无解。但是 A T A x ^ = A T b A^TA\hat x=A^Tb ATAx^=ATb有解,于是我们将原式两边同时乘以 A T A^T AT后得到的新方程组是有解的, A T A x ^ = A T b A^TA\hat x=A^Tb ATAx^=ATb也是最小二乘法的核心方程。

下一讲将进行最小二乘法的验算。

线性代数及矩阵论(三)相关推荐

  1. 人工智能中的线性代数与矩阵论学习秘诀之精品课程

    读者朋友们如果希望通过观看视频的方式自学线性代数与矩阵论的相关内容,下面列出的一些课程可供参考.在线课程非常多,本文仅仅列出了其中的一部分,读者朋友们也可以在网上自行搜索,然后根据自己的喜好进行选择. ...

  2. 线性代数及矩阵论(十一)

    线性代数原文 MIT 18.06 线性代数笔记 矩阵论笔记来自 工程矩阵理论 综合线性代数 机器学习的数学基础 配合视频 线性代数 工程矩阵理论 第三十四讲:左右逆和伪逆 前面我们涉及到的逆(inve ...

  3. 图解AI数学基础(1) | 线性代数与矩阵论(要点速查清单·完结)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/83 本文地址:https://www.showmeai.tech/article-d ...

  4. 线性代数及矩阵论(十)

    线性代数原文 MIT 18.06 线性代数笔记 矩阵论笔记来自 工程矩阵理论 综合线性代数 机器学习的数学基础 配合视频 线性代数 工程矩阵理论 文章目录 第三十二讲:基变换和图像压缩 1.图像压缩 ...

  5. 线性代数及矩阵论(七)

    线性代数原文 MIT 18.06 线性代数笔记 矩阵论笔记来自 工程矩阵理论 综合线性代数 机器学习的数学基础 配合视频 线性代数 工程矩阵理论 文章目录 第二十三讲:微分方程和eAte^{At}eA ...

  6. 矩阵的初等变换与线性方程组【线性代数系列(三)】

    矩阵的初等变换与线性方程组[线性代数系列(三)] 文章目录 1.矩阵的初等变换 1.1 初等变换 1.2 等价关系 1.3 初等变换 矩阵类型 1.3.1行阶梯矩阵 1.3.2 行最简型矩阵 1.3. ...

  7. 线性代数:第三章 矩阵的初等变换与线性方程组(2)线性方程组的解 初等方阵

    第三节 线性方程组的解 一. 数学概念 根据矩阵的乘法,可以将线性方程组写成矩阵形式. 1. n元齐次线性方程组  : 2. n元非齐次线性方程组  : 3. 称A为方程组的系数矩阵,B=(A,b)为 ...

  8. 线性代数:第三章 矩阵的初等变换与线性方程组(1)矩阵的初等变换 矩阵的秩

    第一节 矩阵的初等变换 一. 数学概念 等价关系具有的性质: (i)  反身性 A~A; (ii) 对称性 若A~B,则B~A; (iii)  传递性 若A~B, B~C,则A~C; 二. 重点,难 ...

  9. c++ 圆上任意点坐标计算_线性代数总结 第三章 向量代数与几何计算(空间平面和直线)...

    我的公众号"每日晴天",可关注领取我的笔记pdf版哦~ -------------------------------------------------------------- ...

最新文章

  1. 小鱼易连电脑版_生活多么美好 篇十六:我的桌面改造,有绿植,有小鱼,有大音箱...
  2. CSS继承选择器与包含选择器的比较
  3. b站前端大佬_最强UP主:罗翔老师,你凭什么打败B站千万粉大佬老番茄?
  4. r语言中mpg数据_R语言数据筛选整理包dplyr
  5. 用Anko和Kotlin实现Android上的对话框和警告提示(KAD 24)
  6. php+防御+xss,PHP防御XSS攻击
  7. 基于Echarts的HTML5 Canvas折线图DEMO演示
  8. 百度研究院|2020年10大人工智能科技趋势
  9. python支持向量机 股票_小蛇学python(4)利用SVM预测股票涨跌
  10. 7.20-7.24(2)
  11. Mysql之INFORMATION_SCHEMA解析1
  12. 反思:前一段时间的开发中,忽略了对象概念
  13. prompt的使用oracle,SQL Prompt怎么用?SQL Prompt使用教程
  14. TA技术美术学习路线
  15. 艺术范,技术芯——读达芬奇有感
  16. Type C DP简介
  17. 大学生vb计算机基础,大学计算机基础课程上机考试登录程序的VB实现
  18. 2021年数学建模国赛B题优秀论文(Word)(04烯焼制备分析与试验设计)
  19. RabbitMQ 工作队列模型(任务队列)
  20. 三博脑科医院:癫痫的治疗像是一场“对抗赛”

热门文章

  1. dreamweaver制作php动态网页,用Dreamweaver创建PHPmysql动态网站
  2. 最常用的大文件传输方法有哪些,小编给你们细说
  3. SpringMvc零配置,无Web.xml
  4. 阿里来了一个“超级新星”
  5. 【编译原理】正则文法与正则式的等价性
  6. strtok拆分字符串
  7. Google高级技巧—google Hack★★★★
  8. c语言外部显卡驱动程序,可以用c语言或者c++来直接调用显卡驱动控制显示器上的某个点吗...
  9. 欧框语言框架标准C2,CEFR到底是什么?C2到底有多强!
  10. 银行股从“宽货币”到“宽信用”的传导 中富金石老师建议“持股过年”