线性变换
关于变换:在两个集合之间可以定义一个映射。当集合为数集时,我们称这个映射为“函数”;当集合为线性空间时,就称这个映射为“变换”(之所以叫变换,隐含了一种运动的思想)。“变换”实际上就是“函数”的一种花哨的说法,只是在线性代数中,变换主要考虑作用的是线性空间中的元素,而不是函数中的数字;线性空间中的元素可以简单理解为向量.
线性变换
定义:设 VVV 是一个线性空间,TTT 是 VVV 到自身的一个映射,对于 VVV 中的任意元素 v⃗\vec{v}v 均存在唯一的 v′⃗∈V\vec{v'} \in Vv′∈V 与之对应,则称 TTT 为线性空间 VVV 上的一个变换,记为 Tv⃗=v′⃗T\vec{v}=\vec{v'}Tv=v′(注意:“到自身”限定了变换矩阵为方阵?)一个变换可以非常复杂,然而幸运的是,线性变换对变换进行了限定,是一种特殊的变换;向量的线性运算有加法和数量乘法,那么线性变换顾名思义,就是针对向量的线性运算的变换,它满足:
T(x⃗+y⃗)=T(x⃗)+T(y⃗)T(kx⃗)=kT(x⃗)
\begin{align}
T(\vec{x} + \vec{y}) &= T(\vec{x}) + T(\vec{y}) \\
T(k\vec{x}) &= kT(\vec{x})
\end{align}
T(x+y)T(kx)=T(x)+T(y)=kT(x)
线性变换有一些性质和运算规律,在此做一些举例:
- 线性变换把零元素仍变为零元素(原点固定);
- 线性变换把线性相关的元素组仍变为线性相关的元素组,但线性无关的元素组经过线性变换不一定再是线性无关的(例如降维);
- 线性变换的和 T1+T2:∀x⃗∈V,(T1+T2)x⃗=T1x⃗+T2x⃗T_1+T_2\text{:}\quad\forall \vec{x}\in V\text{,}\quad(T_1+T_2)\vec{x}=T_1\vec{x}+T_2\vec{x}T1+T2:∀x∈V,(T1+T2)x=T1x+T2x;
- 线性变换的数乘 kT:∀x⃗∈V,(kT)x⃗=k(Tx⃗)kT:\quad\forall \vec{x}\in V\text{,}\quad(kT)\vec{x}=k(T\vec{x})kT:∀x∈V,(kT)x=k(Tx);
- 线性变换的乘积 T1T2:∀x⃗∈V,(T1T2)x⃗=T1(T2x⃗)T_1T_2:\quad\forall \vec{x}\in V\text{,}(T_1T_2)\vec{x}=T_1(T_2\vec{x})T1T2:∀x∈V,(T1T2)x=T1(T2x);
通常,线性变换的乘积不满足交换律,且不是所有的变换都具有逆变换;这对应着矩阵的乘积和逆.
线性变换的矩阵表示 ⭐
线性空间是一个非常抽象的概念,线性空间中的元素可以多种多样。线性变换的矩阵表示目的在于:把一个线性空间上的线性变换(元素之间的映射),转化为了坐标之间的变换,并通过矩阵来描述这个变换。对任何线性空间,给定基后,我们对元素进行线性变换或线性运算时,只需用线性变换的矩阵右乘以元素的坐标“向量”即可。注意,实际上在这个变换的过程中,选择的描述这个线性空间 VVV 的基不变。这样的话我们就可以通过矩阵 + 坐标来描述一个线性变换作用于一个抽象向量的过程;每当我们看到一个矩阵时,也都可以理解为是对线性空间(中元素的坐标)的一个线性变换。线性变换的矩阵表示推导过程如下:
考虑线性空间 VVV 中的一个元素(向量)v⃗\vec{v}v,显然该向量可以由基 {v1⃗,v2⃗...,vn⃗}\{\vec{v_1},\vec{v_2}...,\vec{v_n}\}{v1,v2...,vn} 和坐标联合进行唯一线性表示,即:
v⃗=∑1nkivi⃗=[v1⃗,v2⃗...,vn⃗][k1k2⋮kn] \vec{v} = \sum_1^n k_i\vec{v_i} = \begin{bmatrix}\vec{v_1},\vec{v_2}...,\vec{v_n}\end{bmatrix} \begin{bmatrix}k_1 \\k_2 \\\vdots \\k_n\end{bmatrix} v=1∑nkivi=[v1,v2...,vn]k1k2⋮kn
要确定一个线性变换 TTT,乍看起来,似乎需要把线性空间 VVV 中所有向量在 TTT 下的象全部找出来才行,事实上不必如此。因为 TTT 是线性变换(变换前后线性组合系数不变),而 VVV 中任一向量都可由基向量唯一线性表示,所以只要能够确定出 VVV 的基向量的象(即确定基向量的运动),则 VVV 中任一向量的象也就完全确定了。即下面公式所描述的:
Tv⃗=T(k1v1⃗+k2v2⃗+⋯+knvn⃗)=[Tv1⃗,Tv2⃗,⋯ ,Tvn⃗][k1k2⋮kn] T\vec{v}= T(k_1\vec{v_1}+k_2\vec{v_2}+\cdots+k_n\vec{v_n})= \begin{bmatrix}T\vec{v_1},T\vec{v_2},\cdots,T\vec{v_n}\end{bmatrix} \begin{bmatrix}k_1\\k_2\\\vdots\\k_n\end{bmatrix} Tv=T(k1v1+k2v2+⋯+knvn)=[Tv1,Tv2,⋯,Tvn]k1k2⋮kn
其中考虑 Tvi⃗T\vec{v_i}Tvi:线性变换限定在线性空间 VVV 到自身,因此每一个 Tvi⃗T\vec{v_i}Tvi 都可以由基 v1⃗,v2⃗...,vn⃗\vec{v_1},\vec{v_2}...,\vec{v_n}v1,v2...,vn 进行唯一线性表示,因此可以写为矩阵形式:
[Tv1⃗,Tv2⃗,⋯ ,Tvn⃗]=[v1⃗,v2⃗,⋯ ,vn⃗][a11a12⋯a1na21a22⋯a2n⋮an1an2⋯ann]=[v1⃗,v2⃗,⋯ ,vn⃗]A
\begin{bmatrix}T\vec{v_1},T\vec{v_2},\cdots,T\vec{v_n}\end{bmatrix} =
\begin{bmatrix}\vec{v_1},\vec{v_2},\cdots,\vec{v_n}\end{bmatrix}
\begin{bmatrix}a_{_{11}}a_{_{12}}\cdots a_{_{1n}}\\a_{_{21}}a_{_{22}}\cdots a_{_{2n}}\\\vdots \\a_{_{n1}}a_{_{n2}}\cdots a_{_{nn}}\end{bmatrix}=
\begin{bmatrix}\vec{v_1},\vec{v_2},\cdots,\vec{v_n}\end{bmatrix} A
[Tv1,Tv2,⋯,Tvn]=[v1,v2,⋯,vn]a11a12⋯a1na21a22⋯a2n⋮an1an2⋯ann=[v1,v2,⋯,vn]A
矩阵 AAA 称为线性变换 TTT 在基 {v1⃗,v2⃗...,vn⃗}\{\vec{v_1},\vec{v_2}...,\vec{v_n}\}{v1,v2...,vn} 下的矩阵。考虑线性变换后的向量 Tv⃗T\vec{v}Tv:因此向量 Tv⃗T\vec{v}Tv 利用原坐标 [k1,k2,⋯ ,kn]T[k_1,k_2,\cdots,k_n]^{T}[k1,k2,⋯,kn]T 表示就为:
Tv⃗=[v1⃗,v2⃗,⋯ ,vn⃗]A[k1k2⋮kn]
T\vec{v} =
\begin{bmatrix}\vec{v_1},\vec{v_2},\cdots,\vec{v_n}\end{bmatrix}A
\begin{bmatrix}k_1\\k_2\\\vdots\\k_n\end{bmatrix}
Tv=[v1,v2,⋯,vn]Ak1k2⋮kn
于是向量 Tv⃗T\vec{v}Tv 在基 v1⃗,v2⃗...,vn⃗\vec{v_1},\vec{v_2}...,\vec{v_n}v1,v2...,vn 下的新的坐标为:
[k1′k2′⋮kn′]=A[k1k2⋮kn]
\begin{bmatrix}k_1'\\k_2'\\\vdots\\k_n'\end{bmatrix} =
A \begin{bmatrix}k_1\\k_2\\\vdots\\k_n\end{bmatrix}
k1′k2′⋮kn′=Ak1k2⋮kn
综上我们证明了,对任何线性空间,选定线性空间的基后,我们对线性空间中的元素进行线性变换或线性运算时,只需用线性变换的矩阵右乘元素的坐标“向量”,即可得到线性变换后的元素(向量)的新坐标。因此可以把一个线性空间中针对元素的线性变换(向量之间的映射),转化为元素坐标之间的变换,并通过矩阵来描述这个变换。故在后面的内容中着重研究矩阵和坐标“向量”。可以证明:选定一个基后,一个线性变换和代表它的矩阵一一对应;注意根据上面推导,实际上在这个变换的过程中,选择的描述线性空间 VVV 的原始的基 v1⃗,v2⃗...,vn⃗\vec{v_1},\vec{v_2}...,\vec{v_n}v1,v2...,vn 不变。接下来要研究的是,如果我们看见了一个线性变换,那么这个线性变换的矩阵 AAA 应该如何求?
线性变换矩阵的计算 ⭐
矩阵和坐标是绑定在一起的术语。根据上面的推导过程,一个变换后的向量的新的坐标应该等于矩阵 AAA 乘以该向量变换前的坐标,考虑所有基向量变换后新的坐标和变换前坐标的关系,可以列一个 n 元方程组,从而应该可以计算出变换矩阵。以二维空间中的旋转这一线性变换为例,第一步选定标准单位正交基描述这个二维线性空间,如果逆时针旋转 θ\thetaθ 角,则两个基向量的坐标有如下变换:
[10]→[cosθsinθ],[01]→[−sinθcosθ]
\begin{bmatrix}
1 \\ 0
\end{bmatrix}
\rightarrow
\begin{bmatrix}
cos\theta \\ sin\theta
\end{bmatrix}
\quad , \quad
\begin{bmatrix}
0 \\ 1
\end{bmatrix}
\rightarrow
\begin{bmatrix}
-sin\theta \\ cos\theta
\end{bmatrix}
[10]→[cosθsinθ],[01]→[−sinθcosθ]
方程组的矩阵形式则为:
[cosθ−sinθsinθcosθ]=A[1001]
\begin{bmatrix}
cos\theta & -sin\theta \\
sin\theta & cos\theta
\end{bmatrix}
=A
\begin{bmatrix}
1 & 0 \\ 0 & 1
\end{bmatrix}
[cosθsinθ−sinθcosθ]=A[1001]
等式两边同时右乘 I−1I^{-1}I−1,解得线性变换矩阵 AAA 为:
A=[cosθ−sinθsinθcosθ]
A =
\begin{bmatrix}
cos\theta & -sin\theta \\
sin\theta & cos\theta
\end{bmatrix}
A=[cosθsinθ−sinθcosθ]
因此,我们就知道了线性变换作用下,一个线性变换后的向量新的坐标 x′=Ax\boldsymbol{x'} = A\boldsymbol{x}x′=Ax;而要想知道这个向量本身,只需用坐标和初始时选定且不变的描述这个二维线性空间的基(在这里是标准单位正交基)做线性组合即可.
线性变换及矩阵的值域和核
设 TTT 是线性空间 VnV^nVn 上的一个线性变换:
- C(T)={Tv⃗ ∣ v⃗∈Vn}C(T) = \{T\vec{v} \ |\ \vec{v} \in V^n\}C(T)={Tv ∣ v∈Vn} 为线性变换 TTT 的值域;
- N(T)={v⃗ ∣ Tv⃗=0⃗, v⃗∈Vn}N(T)=\{\vec{v} \ |\ T\vec{v}=\vec{0},\ \vec{v} \in V^n\}N(T)={v ∣ Tv=0, v∈Vn} 称为线性变换 TTT 的核;
因为选定基后,一个线性变换可以唯一地由一个矩阵来描述(反过来也成立,即一一对应),我们不妨用矩阵 AAA 来代替线性变换 TTT,那么我们称:
- C(A)={Ax ∣ x∈Rn}C(A) = \{A\boldsymbol{x} \ |\ \boldsymbol{x} \in R^n\}C(A)={Ax ∣ x∈Rn} 为矩阵 AAA 的值域,也称为矩阵 AAA 的列空间(Column Space);dim(C(A))dim(C(A))dim(C(A)) 也称为矩阵 AAA 的秩;
- N(A)={x ∣ Ax=0, x∈Rn}N(A)=\{\boldsymbol{x} \ |\ A\boldsymbol{x}=\boldsymbol{0},\ \boldsymbol{x} \in R^n\}N(A)={x ∣ Ax=0, x∈Rn} 称为矩阵 AAA 的核,也称为矩阵 AAA 的零空间(Null Space);dim(N(A))dim(N(A))dim(N(A)) 称为矩阵 AAA 的零度;
关于列空间 C(A)C(A)C(A)、零空间 N(A)N(A)N(A) 下节也会详细涉及。线性代数基本定理:列空间 C(A)C(A)C(A) 的维数 + 零空间 N(A)N(A)N(A) 的维数 = 矩阵 AAA 的列数,即 dim(C(A))+dim(N(A))=ndim(C(A)) + dim(N(A)) = ndim(C(A))+dim(N(A))=n,注意到列空间的维数也就是矩阵 AAA 的秩 r(A)r(A)r(A)
线性变换中的相似矩阵
一个线性变换和代表它的矩阵一一对应吗?不是的,前提是首先要为这个线性空间选定一个基。因此,两个矩阵即使不同,但也有可能表示的是同一个线性变换!表示同一个线性变换的矩阵,我们称之为互为相似的矩阵。「相似矩阵」定义:设 A,BA,BA,B 是两个 n 阶矩阵,如果存在一个 nnn 阶非奇异(满秩)矩阵 PPP,使得 B=P−1APB = P^{-1}APB=P−1AP,则称 AAA 相似于 BBB,记为 A∼BA\sim BA∼B.
🤣定理1:nnn 阶方阵 AAA 和 BBB 相似的充要条件是 AAA 和 BBB 为同一线性变换在不同基下的矩阵。这一定理就是说,互为相似的矩阵,实际上代表同一个线性变换;只是由于选择描述线性空间的基不同,导致矩阵的形式不同;🤣定理2:设同一个线性变换 TTT 在两个基 {v1⃗,v2⃗,⋯ ,vn⃗}\{\vec{v_1},\vec{v_2},\cdots,\vec{v_n}\}{v1,v2,⋯,vn} 和 {v1′⃗,v2′⃗,⋯ ,vn′⃗}\{\vec{v_1'},\vec{v_2'},\cdots,\vec{v_n'}\}{v1′,v2′,⋯,vn′} 的矩阵分别为 AAA 和 BBB,且 [v1′⃗,v2′⃗,⋯ ,vn′⃗]=[v1⃗,v2⃗,⋯ ,vn⃗]C[\vec{v_1'},\vec{v_2'},\cdots,\vec{v_n'}] = [\vec{v_1},\vec{v_2},\cdots,\vec{v_n}]C[v1′,v2′,⋯,vn′]=[v1,v2,⋯,vn]C ,则:B=C−1ACB = C^{-1}ACB=C−1AC,即 AAA 和 BBB 互为相似矩阵。证明如下:首先根据线性变换的矩阵表示,有
T[v1⃗,v2⃗,⋯ ,vn⃗]=[v1⃗,v2⃗,⋯ ,vn⃗]AT[v1′⃗,v2′⃗,⋯ ,vn′⃗]=[v1′⃗,v2′⃗,⋯ ,vn′⃗]B
T[\vec{v_1},\vec{v_2},\cdots,\vec{v_n}] = [\vec{v_1},\vec{v_2},\cdots,\vec{v_n}]A \\
T[\vec{v_1'},\vec{v_2'},\cdots,\vec{v_n'}]=[\vec{v_1'},\vec{v_2'},\cdots,\vec{v_n'}]B \\
T[v1,v2,⋯,vn]=[v1,v2,⋯,vn]AT[v1′,v2′,⋯,vn′]=[v1′,v2′,⋯,vn′]B
结合条件,有:
T[v1′⃗,v2′⃗,⋯ ,vn′⃗]=[v1′⃗,v2′⃗,⋯ ,vn′⃗]B=[v1⃗,v2⃗,⋯ ,vn⃗]CBT[v1′⃗,v2′⃗,⋯ ,vn′⃗]=T[v1⃗,v2⃗,⋯ ,vn⃗]C=[v1⃗,v2⃗,⋯ ,vn⃗]AC
T[\vec{v_1'},\vec{v_2'},\cdots,\vec{v_n'}] = [\vec{v_1'},\vec{v_2'},\cdots,\vec{v_n'}]B = [\vec{v_1},\vec{v_2},\cdots,\vec{v_n}]CB \\
T[\vec{v_1'},\vec{v_2'},\cdots,\vec{v_n'}] = T[\vec{v_1},\vec{v_2},\cdots,\vec{v_n}]C = [\vec{v_1},\vec{v_2},\cdots,\vec{v_n}]AC \\
T[v1′,v2′,⋯,vn′]=[v1′,v2′,⋯,vn′]B=[v1,v2,⋯,vn]CBT[v1′,v2′,⋯,vn′]=T[v1,v2,⋯,vn]C=[v1,v2,⋯,vn]AC
所以:
CB=AC,即 B=C−1AC
CB = AC, 即\ B = C^{-1}AC
CB=AC,即 B=C−1AC