目录
- 31.线性变换及对应矩阵
- 打赏
31.线性变换及对应矩阵
线性变换相当于是矩阵的抽象表示,每个线性变换都对应着一个矩阵
例: 考虑一个变换 T T T,使得平面上的一个向量投影为平面上的另一个向量,即 T : R 2 → R 2 T:R^2 \to R^2 T:R2→R2,如图:
图中有两个任意向量 v ⃗ , w ⃗ \vec{v} , \vec{w} v,w和一条直线,作 v ⃗ , w ⃗ \vec{v} , \vec{w} v,w在直线上的投影,分别记作 T ( v ⃗ ) , T ( w ⃗ ) T(\vec{v}) , T(\vec{w}) T(v),T(w),可以将 T T T视为一个函数或一 个映射,即输入一个向量,输出一个新向量,这就是一个变换
想让这种变换成为线性变换,需要满足两个式子: { T ( v ⃗ + w ⃗ ) = T ( v ⃗ + w ⃗ ) T ( c v ⃗ ) = c T ( v ⃗ ) \left \{ \begin{matrix} T(\vec{v} + \vec{w}) = T(\vec{v} + \vec{w}) \\ T(c \vec{v}) = c T(\vec{v}) \end{matrix} \right. {T(v+w)=T(v+w)T(cv)=cT(v),即满足加法不变性和数乘不变性
这两个式子也可以结合为 T ( c v ⃗ + d w ⃗ ) = c T ( v ⃗ ) + d T ( w ⃗ ) T(c \vec{v} + d \vec{w}) = c T(\vec{v}) + d T(\vec{w}) T(cv+dw)=cT(v)+dT(w)
可以验证,此处的投影变换是一种线性变换
判断某个变换是否为线性变换并不困难,只需要判断是否满足加法不变性和数乘不变性即可
反例1: 平移整个平面,即平面中的每个向量 v ⃗ \vec{v} v都加上一个固定的 v ⃗ 0 \vec{v}_0 v0,设这个简单的变换为 T 0 T_0 T0,它并不是线性变换,比如考虑数乘, T 0 ( 2 v ⃗ ) = 2 v ⃗ + v ⃗ 0 ≠ 2 T 0 ( v ⃗ ) = 2 ( v ⃗ + v ⃗ 0 ) T_0(2 \vec{v}) = 2 \vec{v} + \vec{v}_0 \ne 2 T_0(\vec{v}) = 2(\vec{v} + \vec{v}_0) T0(2v)=2v+v0=2T0(v)=2(v+v0),不满足数乘不变性
还可以考虑对 0 ⃗ \vec{0} 0的变换,如果是线性变换则需满足 T 0 ( 0 ⃗ ) = 0 ⃗ T_0(\vec{0}) = \vec{0} T0(0)=0,因为对于任意变换 T T T,在数乘不变性的式子中取 v ⃗ = 0 ⃗ \vec{v} = \vec{0} v=0, c c c取任意非零数,则有 T ( c 0 ⃗ ) = T ( 0 ⃗ ) = c T ( 0 ⃗ ) T(c \vec{0}) = T(\vec{0}) = cT(\vec{0}) T(c0)=T(0)=cT(0),从而得到 T ( 0 ⃗ ) = 0 ⃗ T(\vec{0}) = \vec{0} T(0)=0,而此处 T 0 ( 0 ⃗ ) = v ⃗ 0 ≠ 0 ⃗ T_0(\vec{0}) = \vec{v}_0 \ne \vec{0} T0(0)=v0=0,所以不是线性变换
反例2: 求模长,求出一个三维向量的模长,即把一个三维空间内的向量映射到一个一维空间中(或者说是一个实数),也就是 T : R 3 → R 1 T:R^3 \to R^1 T:R3→R1,即 T ( v ⃗ ) = ∣ v ⃗ ∣ T(\vec{v}) = |\vec{v}| T(v)=∣v∣,这满足 T ( 0 ⃗ ) = 0 ⃗ T(\vec{0}) = \vec{0} T(0)=0,但是对于数乘不变性来说,当 c < 0 c < 0 c<0且 v ⃗ ≠ 0 ⃗ \vec{v} \ne \vec{0} v=0时, c ∣ v ⃗ ∣ c|\vec{v}| c∣v∣ = − ∣ c v ⃗ ∣ = -|c\vec{v}| =−∣cv∣,所以这不是一个线性变换
正例1: 将一个二维向量逆时针旋转 4 5 ∘ 45^\circ 45∘,容易发现这满足数乘不变性,想象任意一个图形,把它旋转 4 5 ∘ 45^\circ 45∘相当于图形上的 所有点都旋转了 4 5 ∘ 45^\circ 45∘,所以这个变换也满足加法不变性
正例2: 左乘一个矩阵 A A A,即 T ( v ⃗ ) = A v ⃗ T(\vec{v}) = A \vec{v} T(v)=Av,容易证明 { A ( v ⃗ + w ⃗ ) = A v ⃗ + A w ⃗ A ( c v ⃗ ) = c A v ⃗ \left \{ \begin{matrix} A(\vec{v} + \vec{w}) = A \vec{v} + A \vec{w} \\ A(c \vec{v}) = c A \vec{v} \end{matrix} \right. {A(v+w)=Av+AwA(cv)=cAv,所以 A A A相当于把空间中的所有向量都进行了一个变换,也就是把这个空间进行了一次变换,当 A A A为投影矩阵时,变换就是投影,当 A A A为旋转矩阵时,变换就是旋转
如 A = [ 1 0 0 − 1 ] A = \begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix} A=[100−1],用它乘上一个二维向量,它可以让这个向量 x x x方向上的分量不变, y y y方向上的分量变为相反数
对于任意一个线性变换 T T T,找到它对应的矩阵 A A A,对于一个确定的向量 v ⃗ 1 \vec{v}_1 v1 ,有 T ( v ⃗ 1 ) = A v ⃗ 1 T(\vec{v}_1) = A \vec{v}_1 T(v1)=Av1,由结果可以看到这个变换对 v ⃗ 1 \vec{v}_1 v1的影响,再引入一个与 v ⃗ 1 \vec{v}_1 v1线性无关的向量 v ⃗ 2 \vec{v}_2 v2,同样可以看到该变换对 v ⃗ 2 \vec{v}_2 v2的影响,由于二者线性无关,所以总结两个影响就可得到该变换对二者线性组合后得到的所有向量的影响,即对以二者为基的空间的影响
所以想要知道一个变换对某个空间的影响,需要知道该变换对该空间的一组基的影响,即输入一组基就可以知道该变换对输入空间的影响
表示为代数可以这么理解:设空间中的某一向量 v ⃗ = c 1 v ⃗ 1 + ⋯ + c n v ⃗ n \vec{v} = c_1 \vec{v}_1 + \cdots + c_n \vec{v}_n v=c1v1+⋯+cnvn,则有 T ( v ⃗ ) = c 1 T ( v ⃗ 1 ) + ⋯ + c n T ( v ⃗ n ) T(\vec{v}) = c_1 T(\vec{v}_1) + \cdots + c_n T(\vec{v}_n) T(v)=c1T(v1)+⋯+cnT(vn)
想要找到一个线性变换对应的矩阵首先可以得到这个矩阵的行数和列数,当 T : R n → R m T:R^n \to R^m T:Rn→Rm时,矩阵为 m m m行 n n n列
坐标系建立在基的基础之上,一旦确定了一组基,坐标值也就随之确定,因为空间中的任意向量都可以表示为基中元素的线性组合,而坐标值就是基中元素前的系数 c 1 , c 2 , ⋯ , c n c_1 , c_2 , \cdots , c_n c1,c2,⋯,cn,不过一般情况下我们使用的是由单位矩阵各列组成的基,所以对于坐标的理解会稍有不同
由上面的描述可知表示向量一定需要用到基,所以想要找到一个线性变换对应的矩阵需要确定两组基,比如对于变换 T : R n → R m T:R^n \to R^m T:Rn→Rm,需要确定 R n R^n Rn的一组基 v ⃗ 1 , v ⃗ 2 , ⋯ , v ⃗ n \vec{v}_1 , \vec{v}_2 , \cdots , \vec{v}_n v1,v2,⋯,vn和 R m R^m Rm的一组基 w ⃗ 1 , w ⃗ 2 , ⋯ , w ⃗ m \vec{w}_1 , \vec{w}_2 , \cdots , \vec{w}_m w1,w2,⋯,wm,它们也分别是输入空间和输出空间的基,这样,一个以第一个基为坐标系的向量进行线性变换后即可得到以第二个基为坐标系的向量,也就是说,输入向量的坐标在线性变换后可以得到输出向量的坐标,但是这两个坐标是基于不同的基的
例: 一个投影矩阵把二维空间中的向量投影到该空间的一条直线上,先为输入空间找一组基,基的第一个元素在该直线上,基的第二个元素垂直于该直线,分别记作 v ⃗ 1 , v ⃗ 2 \vec{v}_1 , \vec{v}_2 v1,v2,则输入向量 v ⃗ = c 1 v ⃗ 1 + c 2 v ⃗ 2 \vec{v} = c_1 \vec{v}_1 + c_2 \vec{v}_2 v=c1v1+c2v2,我们把它也视为输出空间的基,即 w ⃗ 1 = v ⃗ 1 , w ⃗ 2 = v ⃗ 2 \vec{w}_1 = \vec{v}_1 , \vec{w}_2 = \vec{v}_2 w1=v1,w2=v2
有 T ( v ⃗ 1 ) = v ⃗ 1 , T ( v ⃗ 2 ) = 0 ⃗ T(\vec{v}_1) = \vec{v}_1 , T(\vec{v}_2) = \vec{0} T(v1)=v1,T(v2)=0,所以 T ( v ⃗ ) = c 1 v ⃗ 1 + 0 v ⃗ 2 T(\vec{v}) = c_1 \vec{v}_1 + 0 \vec{v}_2 T(v)=c1v1+0v2,即 A [ c 1 c 2 ] = [ c 1 0 ] A \begin{bmatrix} c_1 \\ c_2 \end{bmatrix} = \begin{bmatrix} c_1 \\ 0 \end{bmatrix} A[c1c2]=[c10],因而这个投影对应矩阵 A = [ 1 0 0 0 ] A = \begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix} A=[1000]
可以发现 A A A为一个对角阵,并且 v ⃗ 1 , v ⃗ 2 \vec{v}_1 , \vec{v}_2 v1,v2刚好是 A A A的两个特征向量, A A A主对角线上的元素刚好是它的特征值
推广至所有 T : R n → R n T:R^n \to R^n T:Rn→Rn可得:当要求输入空间的基和输出空间一致时,若以满足 T ( v ⃗ ′ ) = λ v ⃗ ′ T(\vec{v}^{'}) = \lambda \vec{v}^{'} T(v′)=λv′的向量 v ⃗ ′ \vec{v}^{'} v′为基(当然它们要是线性无关的,并且 T T T对应的 A A A得要有 n n n个线性无关的特征向量), A A A就会成为一个特征值矩阵,并且这个特征值是该线性变换所有符合要求的 A A A的特征值,同时这组基的元素也都是这些 A A A的特征向量,也就是说这些 A A A互为相似矩阵
顺便一提,在物理上很经常使用特征向量作为一组基建立坐标系
如果确定了输入空间和输出空间的基,则有 v ⃗ 1 = [ 1 0 ⋮ 0 ] , v ⃗ 2 = [ 0 1 ⋮ 0 ] , ⋯ , v ⃗ n = [ 0 0 ⋮ 1 ] \vec{v}_1 = \begin{bmatrix} 1 \\ 0 \\ \vdots \\ 0 \end{bmatrix} , \vec{v}_2 = \begin{bmatrix} 0 \\ 1 \\ \vdots \\ 0 \end{bmatrix} , \cdots , \vec{v}_n = \begin{bmatrix} 0 \\ 0 \\ \vdots \\ 1 \end{bmatrix} v1= 10⋮0 ,v2= 01⋮0 ,⋯,vn= 00⋮1
因为线性转化是知道的,所以 v ⃗ i \vec{v}_i vi的输出向量是知道的,所以用输出空间的基得到 v ⃗ i \vec{v}_i vi的输出向量的线性组合方式是知道的
而这个线性组合方式 T ( v ⃗ i ) = A v ⃗ i = [ a 1 , i a 2 , i ⋮ a m , i ] T(\vec{v}_i) = A \vec{v}_i = \begin{bmatrix} a_{1 , i} \\ a_{2 , i} \\ \vdots \\ a_{m , i} \end{bmatrix} T(vi)=Avi= a1,ia2,i⋮am,i ,这样就可以求出 A A A了
其实求导也是一种线性变换
例: 设 T = d d x T = \dfrac{d}{dx} T=dxd,输入向量 v ⃗ = c 1 + c 2 x + c 3 x 2 \vec{v} = c_1 + c_2 x + c_3 x^2 v=c1+c2x+c3x2,基为 { 1 , x , x 2 } \{ 1 , x , x^2 \} {1,x,x2},则输出向量 w ⃗ = c 2 + 2 c 3 x \vec{w} = c_2 + 2 c_3 x w=c2+2c3x,基为 { 1 , x } \{ 1 , x \} {1,x}
可以得到此处 A = [ 0 1 0 0 0 2 ] A = \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 2 \end{bmatrix} A=[001002]
正是因为求导是线性运算,所以只需要掌握一些求导法则,通过它们的线性组合就可以得到导数
由于矩阵和线性变换的对应关系,矩阵的逆即为线性变换的逆操作,矩阵的乘积即为线性变换的叠加
打赏
制作不易,若有帮助,欢迎打赏!