线性代数讲义(三)线性空间与线性变换
fengxiaot Lv4

2021年暑假,受仲英书院学辅邀请,我主持了三次线性代数沙龙,对象是工科专业的本科一年级学生。这是第三次沙龙的讲义,主题是线性空间与线性变换。这理应是线性代数的核心,但学校的教学却侧重在矩阵运算上。希望这份讲义能帮助同学纠正概念,理解线性代数的逻辑与本质。


线性空间与线性变换的基础概念

线性空间

VV 是一个非空集合, F\mathbb{F} 是一个数域,如果 VV 上规定了加法运算和数乘运算(对加法运算和数乘运算封闭),且满足以下8条运算规律(加法四条,乘法四条),则称 VVF\mathbb{F} 上的线性空间

  1. 加法交换律:α+β=β+αα,βV\boldsymbol{\alpha} + \boldsymbol{\beta} = \boldsymbol{\beta} + \boldsymbol{\alpha} \qquad \forall \boldsymbol{\alpha},\boldsymbol{\beta} \in V

  2. 加法结合律:α+(β+γ)=(α+β)+γα,β,γV\boldsymbol{\alpha} + (\boldsymbol{\beta} + \gamma) = (\boldsymbol{\alpha} + \boldsymbol{\beta}) + \gamma \qquad \forall \boldsymbol{\alpha},\boldsymbol{\beta},\gamma \in V

  3. 零元素:0V, s.t. αV, α+0=α\exists 0 \in V, \ \text{s.t.} \ \forall \boldsymbol{\alpha} \in V,\ \boldsymbol{\alpha} + 0 = \boldsymbol{\alpha}

  4. 负元素:αV, βV, s.t. α+β=0\forall \boldsymbol{\alpha} \in V, \ \exists \boldsymbol{\beta} \in V, \ \text{s.t.} \ \boldsymbol{\alpha}+\boldsymbol{\beta}=0

  5. 数乘单位元:1α=ααV1 \boldsymbol{\alpha} = \boldsymbol{\alpha} \qquad \boldsymbol{\alpha} \in V

  6. 数乘和域乘法相容:(kl)α=k(lα)αV, k,lF(kl) \boldsymbol{\alpha} = k (l \boldsymbol{\alpha}) \qquad \forall \boldsymbol{\alpha} \in V,\ k,l \in \mathbb{F}

  7. 数乘对向量加法满足分配律:k(α+β)=kα+kβα,βV, kFk(\boldsymbol{\alpha}+\boldsymbol{\beta}) = k \boldsymbol{\alpha} + k \boldsymbol{\beta} \qquad \forall \boldsymbol{\alpha},\boldsymbol{\beta} \in V,\ k \in \mathbb{F}

  8. 数乘对标量加法满足分配律:(k+l)α=kα+lααV, k,lF(k + l) \boldsymbol{\alpha} = k \boldsymbol{\alpha} + l \boldsymbol{\alpha} \qquad \forall \boldsymbol{\alpha} \in V,\ k,l \in \mathbb{F}

线性空间中的元素称为向量

线性映射

VVVV^\prime 是数域 F\mathbb{F} 上的两个线性空间, VVVV^\prime 的一个映射 A\mathscr{A} 如果保持加法运算(additivity)和纯量乘法运算(homogeneity),即

A(α+β)=A(α)+A(β)\mathscr{A} (\boldsymbol{\alpha} + \boldsymbol{\beta}) = \mathscr{A}(\boldsymbol{\alpha}) + \mathscr{A} (\boldsymbol{\beta})

A(kα)=kα\mathscr{A} (k \boldsymbol{\alpha}) = k \mathscr{\boldsymbol{\alpha}}

则称 A\mathscr{A}VVVV^\prime线性映射

线性空间 VV 到自身的线性映射称为 VV 上的线性变换

VVVV^\prime 所有线性映射组成的集合记作 Hom(V,V)\operatorname{Hom} (V,V^\prime) ,把 VVVV 上所有线性变换组成的集合记作 Hom(V,V)\operatorname{Hom} (V,V)

线性相关与线性无关

在数域 F\mathbb{F} 上的线性空间 VV 中,给定向量组 α1,α2,,αn\boldsymbol{\alpha}_1, \boldsymbol{\alpha}_2, \cdots, \boldsymbol{\alpha}_n ,对于 βV\boldsymbol{\beta} \in V ,如果存在 F\mathbb{F} 中的一组数 k1,k2,,knk_1,k_2,\cdots,k_n ,使得 β=k1α1+k2α2++knαn\boldsymbol{\beta} = k_1 \boldsymbol{\alpha}_1 + k_2 \boldsymbol{\alpha}_2 + \cdots + k_n \boldsymbol{\alpha} _n 则称 β\boldsymbol{\beta} 可以被 α1,α2,,αn\boldsymbol{\alpha}_1, \boldsymbol{\alpha}_2, \cdots, \boldsymbol{\alpha}_n 线性表出


函数空间

实平方可积函数空间

实平方可积

定义在 [a,b][a,b] 上的函数 f(x)f(x) 在此区间上的积分 abf(x)2dx\int_a^b |f(x)|^2 \,\mathrm{d} x 存在且由极限,则称函数 f(x)f(x)平方可积的,此空间记为 L2[a,b]L_2 [a,b]

实平方可积函数空间

元素是定义在 [a,b][a,b] 上的实变量 xx 的实值函数,它们是平方可积的,并且符合线性性,这些元素的集合形成的线性空间称为平方可积的函数空间,简称为函数空间

两个函数 ffgg 之间的距离定义为

ρ(f,g)=[abf(x)g(x)2dx]1/2\rho(f, g)=\left[\int_{a}^{b}|f(x)-g(x)|^{2} \,\mathrm{d} x\right]^{1/2}

可知 L2[a,b]L_2 [a,b] 是一个距离空间。

两个函数 ffgg 之间的内积定义为

(f,g)=abf(x)g(x)dx(f, g)=\int_{a}^{b} f(x)g(x) \,\mathrm{d} x

泰勒级数

幂函数基

回顾泰勒级数公式

f(x)=f(x0)0!+f(x0)1!(xx0)+f(x0)2!(xx0)2++f(n)(x0)n!(xx0)n+Rn(x) f(x)=\frac{f(x_{0})}{0 !}+\frac{f^{\prime}(x_{0})}{1 !}\left(x-x_{0}\right)+\frac{f^{\prime \prime}(x_{0})}{2 !}\left(x-x_{0}\right)^{2}+\cdots+\frac{f^{(n)}(x_{0})}{n !}\left(x-x_{0}\right)^{n}+R_{n}(x)

注意到 n1n-1 次多项式函数 f(x)=a0+a1x+a2x2++an1xn1f(x) = a_0 + a_1 x + a_2 x^2 + \cdots + a_{n-1} x^{n-1}nn 阶导数就变成 00 了。因此任意 n1n-1 次多项式函数的泰勒级数都只有前 nn 项!若 n1n-1 次多项式函数定义在 [a,b][a,b] 上, x0[a,b]x_0 \in [a,b] ,则可以选定

{1,xx0,12!(xx0)2,,1(n1)!(xx0)n1} \left\{ 1, x-x_{0} , \frac{1}{2!} \left(x-x_{0}\right)^{2}, \cdots , \frac{1}{(n-1)!} \left(x-x_{0}\right)^{n-1}\right\}

为多项式函数构成的线性空间的一组基。
任意多项式函数在这组基下的坐标为 [f(x0)f(x0)f(x0)f(n1)(x0)]T[f(x_0) \quad f^{\prime}(x_{0}) \quad f^{\prime \prime}(x_{0}) \quad \cdots \quad f^{(n-1)}(x_{0}) ]^T

特殊地,我们平常表示一个多项式函数为

f(x)=a0+a1x+a2x2++an1xn1 f(x) = a_0 + a_1 x + a_2 x^2 + \cdots + a_{n-1} x^{n-1}

这也是选定了 {1,x,x2,,xn1}\{ 1, x, x^2, \cdots , x^{n-1}\} 为基后的表达形式。应用泰勒级数,我们可以得到前面的坐标为

ak=k!f(k)(0) a_k = k ! f^{(k)}(0)

此时函数就可以表达成

f(x)=[1xx2xn1][a0a1a2an1] f(x) = [1 \quad x \quad x^2 \quad \cdots \quad x^{n-1} ] \begin{bmatrix} a_0 \\ a_1 \\ a_2 \\ \vdots \\ a_{n-1} \end{bmatrix}

求导变换与幂零矩阵

求导变换 D\mathscr{D} 定义为

D:f(x)f(x) \mathscr{D} : f(x) \mapsto f^{\prime}(x)

求导变换是线性变换。这可以通过导数的性质立刻得到。

D[f(x)+g(x)]=f(x)+g(x)=Df(x)+Dg(x) \mathscr{D}[f(x)+g(x)] = f^{\prime}(x) + g^{\prime}(x) = \mathscr{D}f(x) + \mathscr{D}g(x)

D[kf(x)]=kf(x)=kDf(x) \mathscr{D}[kf(x)] = k f^{\prime}(x) = k \mathscr{D}f(x)

求导变换是定义在函数空间上的,它把任意一个函数映射到另一个函数。它是更本质的存在,脱离于函数基的选择。如果没学过线性代数这门课,你也可以很轻松地计算和表示出一个函数的导函数。然而,我们现在要用矩阵去描述它。

下面举一个函数基的例子,另一个函数基留作习题。

n1n-1 次多项式函数构成的线性空间中,选定 {1,x,x2,,xn1}\{ 1, x, x^2, \cdots , x^{n-1}\} 为基。对 f(x)=a0+a1x+a2x2++an1xn1f(x) = a_0 + a_1 x + a_2 x^2 + \cdots + a_{n-1} x^{n-1} 求导,得到

f(x)=a1+2a2x++(n1)an1xn2f^{\prime}(x) = a_1 + 2 a_2 x + \cdots + (n-1) a_{n-1} x^{n-2}

写成基乘坐标向量的形式

f(x)=[1xx2xn1][a12a2(n1)an10]f^{\prime}(x) = [1 \quad x \quad x^2 \quad \cdots \quad x^{n-1} ] \begin{bmatrix} a_1 \\ 2a_2 \\ \vdots \\ (n-1) a_{n-1} \\ 0 \end{bmatrix}

观察到从 f(x)f(x) 的坐标到 f(x)f^{\prime}(x) 的坐标,可以写成矩阵 DD 作用于其上

[a12a23a3(n1)an10]=[0100000200000300000n100000][a0a1a2a3an1]\begin{bmatrix} a_1 \\ 2a_2 \\ 3a_3 \\ \vdots \\ (n-1) a_{n-1} \\ 0 \end{bmatrix} = \begin{bmatrix} 0 & 1 & 0 & 0 & \cdots & 0 \\ 0 & 0 & 2 & 0 & \cdots & 0 \\ 0 & 0 & 0 & 3 & \cdots & 0 \\ \vdots & \vdots & \vdots & \vdots & & \vdots \\ 0 & 0 & 0 & 0 & \cdots & n-1 \\ 0 & 0 & 0 & 0 & \cdots & 0 \end{bmatrix} \begin{bmatrix} a_0 \\ a_1 \\ a_2 \\ a_3 \\ \vdots \\ a_{n-1} \end{bmatrix}

因此,矩阵 DD 就是求导变换在基 {1,x,x2,,xn1}\{ 1, x, x^2, \cdots , x^{n-1}\} 下的矩阵。

习题:给出求导变换 D\mathscr{D} 在基 {1,x,x22!,,xn1(n1)!}\{ 1, x, \frac{x^2}{2!}, \cdots , \frac{x^{n-1}}{(n-1)!}\} 下的矩阵。

我们不禁思考:不同函数基下的求导变换对应的矩阵有何共性?

正如给定幂等矩阵我们还原回投影变换去思考,给定对合矩阵我们还原回对称变换去思考,求导变换有什么性质,求导变换在一个个函数基下的矩阵就有什么性质。这再次说明线性变换才是线性代数的核心,矩阵只是研究工具。

注意到,任意一个 n1n-1 阶函数求 nn 次导就变成零函数 00 。每求一次导,相当于对当前函数施加一个求导变换 D\mathscr{D} 。也就是说,每求一次导,相当于对当前函数在某个函数基下的坐标左乘一个矩阵 DD 。求导 nn 次变成 00 ,意味着 Dn=O\mathscr{D}^n = \mathscr{O} ,也意味着, Dn=OD^{n}=O 。因此, D\mathscr{D} 是一个幂零指数为 nn 的幂零变换, DD 是一个幂零指数为 nn 的幂零矩阵。

你若不信,我们来手算一下。考虑求导变换在 Taylor 展开基下的矩阵,不妨令 n=5n=5 ,则

D=[0100000100000100000100000] D = \begin{bmatrix} 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 \\ \end{bmatrix}

DD 的二次幂为

D2=[0010000010000010000000000] D^2 = \begin{bmatrix} 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ \end{bmatrix}

DD 的三次幂为

D2=[0001000001000000000000000] D^2 = \begin{bmatrix} 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ \end{bmatrix}

可以料想, DD 的五次幂就会变成 OO

矩阵有秩。可以看到,求导变换矩阵 DD 的秩为 n1n-1 。上一次线代沙龙提到,秩代表着经历线性变换/矩阵左乘后,信息量的维度剩下多少。求导变换矩阵 DD 就鲜明地说明了这一点。每次求导后,常数项消失了,函数变成了 n2n-2 次多项式。我们不能通过导数精准地还原到原函数,这就是不定积分为何有常数 CC 的原因。当大家学到第八章的时候,会发现一个线性变换的秩也是这样定义出来的。

最后,我们来看看线代课本上的一道习题有何意义,以此来结束这一小节。

AAnn 阶方阵, ll 为正整数, α\boldsymbol{\alpha} 为某一向量。 Alα=0A^l \boldsymbol{\alpha} =0Al1α0A^{l-1} \boldsymbol{\alpha} \neq 0 。求证:α,Aα,,Al1α\boldsymbol{\alpha}, A \boldsymbol{\alpha}, \cdots, A^{l-1} \boldsymbol{\alpha} 线性无关。

D\mathscr{D} 是求导变换, Dlf(x)=0\mathscr{D}^l f(x) =0Dl1f(x)0\mathscr{D}^{l-1} f(x) \neq 0 。这意味着 f(x)f(x) 必定是一个 l1l-1 次多项式,此时 f(x),Df(x),,Dl1f(x)f(x), \mathscr{D} f(x), \cdots, \mathscr{D}^{l-1} f(x) 分别是常数,1次多项式,2次多项式,…, l1l-1 次多项式,通过乘系数加加减减(初等变换),必定可以变成 1,x,,xl11,x,\cdots,x^{l-1} ,它们是函数空间的一组基,正是线性无关的。

从这道习题,可以引出高等代数中循环空间的概念。因为习题的结论意味着,可以通过一个幂零变换,构造出线性空间的一组基。

向量与线性变换在不同基下的表示

通过前两节的论证,我们知道,向量和线性变换都是脱离基而存在于线性空间中的概念。在选定了某一组基后,向量可以用一个坐标列向量表示,线性变换可以用一个矩阵表示。线性变换作用在向量上,就相当于矩阵作用在坐标上。从而把对多项式函数的代数式的运算,转化为了对系数的运算。那么,如果换一组基呢?这些表示方法会发生什么变化?

考虑这样一个问题:给定向量 f(x)f(x) 在基 {1,x,x2,,xn1}\{ 1, x, x^2, \cdots , x^{n-1}\} 下的坐标 x\boldsymbol{x} ,怎么求出 f(x)f(x) 在基 {1,x,x22!,,xn1(n1)!}\{ 1, x, \frac{x^2}{2!}, \cdots , \frac{x^{n-1}}{(n-1)!}\} 下的坐标 y\boldsymbol{y} ?给定求导变换 D\mathscr{D} 在基 {1,x,x2,,xn1}\{ 1, x, x^2, \cdots , x^{n-1}\} 下的矩阵 DD ,怎么求出 f(x)f(x) 在基 {1,x,x22!,,xn1(n1)!}\{ 1, x, \frac{x^2}{2!}, \cdots , \frac{x^{n-1}}{(n-1)!}\} 下的矩阵 DD^{\prime} ?答案是使用化归的思想。

基变换与坐标变换

对于第一个问题,我们已知

f(x)=a0+a1x+a2x2++an1xn1=[1xx2xn1][a0a1a2an1] \begin{aligned} f(x) &= a_0 + a_1 x + a_2 x^2 + \cdots + a_{n-1} x^{n-1} \\ &= [1 \quad x \quad x^2 \quad \cdots \quad x^{n-1} ] \begin{bmatrix} a_0 \\ a_1 \\ a_2 \\ \vdots \\ a_{n-1} \end{bmatrix} \end{aligned}

现在把 1,x,x2,,xn11, x, x^2, \cdots , x^{n-1} 在基 {1,x,x22!,,xn1(n1)!}\{ 1, x, \frac{x^2}{2!}, \cdots , \frac{x^{n-1}}{(n-1)!}\} 下的表示方法都找出来,得到

1=[1xx22!xn1(n1)!][1000]1 = \begin{bmatrix} 1 & x & \frac{x^2}{2!} & \cdots & \frac{x^{n-1}}{(n-1)!} \end{bmatrix} \begin{bmatrix} 1 \\ 0 \\ 0 \\ \vdots \\ 0 \end{bmatrix}

x=[1xx22!xn1(n1)!][0100] x = \begin{bmatrix} 1 & x & \frac{x^2}{2!} & \cdots & \frac{x^{n-1}}{(n-1)!} \end{bmatrix} \begin{bmatrix} 0 \\ 1 \\ 0 \\ \vdots \\ 0 \end{bmatrix}

以此类推

xk=[1xx22!xn1(n1)!][0k!0] x^k = \begin{bmatrix} 1 & x & \frac{x^2}{2!} & \cdots & \frac{x^{n-1}}{(n-1)!} \end{bmatrix} \begin{bmatrix} 0 \\ \vdots \\ k! \\ \vdots \\ 0 \end{bmatrix}

接着把 1,x,x2,,xn11, x, x^2, \cdots , x^{n-1}nn 个坐标作为列向量排成一个矩阵,得到

[1xx2xn1]=[1xx22!xn1(n1)!][100001!00002!0000(n1)!]\begin{bmatrix} 1 & x & x^2 & \cdots & x^{n-1} \end{bmatrix} = \begin{bmatrix} 1 & x & \frac{x^2}{2!} & \cdots & \frac{x^{n-1}}{(n-1)!} \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 & \cdots & 0 \\ 0 & 1! & 0 & \cdots & 0 \\ 0 & 0 & 2! & \cdots & 0 \\ \vdots & \vdots & \vdots & & \vdots \\ 0 & 0 & 0 & \cdots & (n-1)! \\ \end{bmatrix}

这有点像一个向量组在基 {1,x,x22!,,xn1(n1)!}\{ 1, x, \frac{x^2}{2!}, \cdots , \frac{x^{n-1}}{(n-1)!}\} 下的坐标。每个向量的坐标是一个 n×1n \times 1 的矩阵,向量组的坐标就是 n×nn \times n 的矩阵。且都可以表示为

向量组 = 基 × 坐标

于是,就可以推得

f(x)=[1xx2xn1]x=[1xx22!xn1(n1)!][100001!00002!0000(n1)!]x\begin{aligned} f(x) &= [1 \quad x \quad x^2 \quad \cdots \quad x^{n-1} ] \boldsymbol{x} \\ &= \begin{bmatrix} 1 & x & \frac{x^2}{2!} & \cdots & \frac{x^{n-1}}{(n-1)!} \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 & \cdots & 0 \\ 0 & 1! & 0 & \cdots & 0 \\ 0 & 0 & 2! & \cdots & 0 \\ \vdots & \vdots & \vdots & & \vdots \\ 0 & 0 & 0 & \cdots & (n-1)! \\ \end{bmatrix} \boldsymbol{x} \end{aligned}

同时,若 f(x)f(x) 在基 {1,x,x22!,,xn1(n1)!}\{ 1, x, \frac{x^2}{2!}, \cdots , \frac{x^{n-1}}{(n-1)!}\} 下的坐标为 y\boldsymbol{y} ,则有

f(x)=[1xx22!xn1(n1)!]yf(x) = \begin{bmatrix} 1 & x & \frac{x^2}{2!} & \cdots & \frac{x^{n-1}}{(n-1)!} \end{bmatrix} \boldsymbol{y}

对比两式,得到坐标变换关系

y=[100001!00002!0000(n1)!]x\boldsymbol{y} = \begin{bmatrix} 1 & 0 & 0 & \cdots & 0 \\ 0 & 1! & 0 & \cdots & 0 \\ 0 & 0 & 2! & \cdots & 0 \\ \vdots & \vdots & \vdots & & \vdots \\ 0 & 0 & 0 & \cdots & (n-1)! \\ \end{bmatrix} \boldsymbol{x}

实际操作中,我们定义该矩阵为从新基 {1,x,x22!,,xn1(n1)!}\{ 1, x, \frac{x^2}{2!}, \cdots , \frac{x^{n-1}}{(n-1)!}\} 到老基 1,x,x2,,xn11, x, x^2, \cdots , x^{n-1} 的过渡矩阵 P1P^{-1} ,而把从老基到新基的过渡矩阵定义为 PP 。从而

[1xx2xn1]=[1xx22!xn1(n1)!]P1\begin{bmatrix} 1 & x & x^2 & \cdots & x^{n-1} \end{bmatrix} = \begin{bmatrix} 1 & x & \frac{x^2}{2!} & \cdots & \frac{x^{n-1}}{(n-1)!} \end{bmatrix} P^{-1}

[1xx22!xn1(n1)!]=[1xx2xn1]P\begin{bmatrix} 1 & x & \frac{x^2}{2!} & \cdots & \frac{x^{n-1}}{(n-1)!} \end{bmatrix} = \begin{bmatrix} 1 & x & x^2 & \cdots & x^{n-1} \end{bmatrix} P

这看似有些别扭,但符合逻辑顺序。过渡总是从旧到新过渡,因此从旧到新定义为 PP ,从新到旧定义为 P1P^{-1} 。不过也用不着纠结,只需理解基变换矩阵就是一组基在另一组基下的“坐标”即可。

线性变换在不同基下的矩阵

现在我们有一组新基,一组旧基。一个脱离于基的任意向量 α\boldsymbol{\alpha} 和一个脱离基的线性变换 A\mathscr{A} ,以及脱离基的变换后向量 Aα\mathscr{A}\boldsymbol{\alpha} 。还有线性变换在旧基下的矩阵 AA 。我们的目的是要找出线性变换在新基下的矩阵 AA^\prime

可以先把这一向量在旧基下的坐标 x\boldsymbol{x} 找出来,用 AA 左乘坐标,得到 Aα\mathscr{A}\boldsymbol{\alpha} 在旧基下的坐标 AxA \boldsymbol{x} 。然后通过基变换下的坐标变换, α\boldsymbol{\alpha} 在新基下的坐标 y=P1x\boldsymbol{y}=P^{-1} \boldsymbol{x}AxA \boldsymbol{x} 在新基下的坐标为 P1AxP^{-1} A \boldsymbol{x} 。然后 A\mathscr{A} 在新基下的矩阵 AA^\prime 就显然了,因为作用关系还是不变的嘛。所以由 Ay=P1AxA^\prime \boldsymbol{y} = P^{-1} A \boldsymbol{x},就可以推知

A=P1APA^\prime = P^{-1} A P

这就是线性变换在不同基下的矩阵的变换关系。