31线性变换及其矩阵

一、线性变换的概念

线性变换是一种映射,映射前后向量空间满足:
T ( c u + d v ) = c T ( u ) + d T ( v ) (1) T(c\boldsymbol{u} + d\boldsymbol{v}) = cT(\boldsymbol{u}) + dT(\boldsymbol{v})\tag{1} T(cu+dv)=cT(u)+dT(v)(1)
其中, u \boldsymbol{u} u v \boldsymbol{v} v 是向量空间 V V V 中的任意向量,而 c c c d d d 分别是与它们相关的标量, T ( x ) T(\boldsymbol{x}) T(x)表示向量 x \boldsymbol{x} x变换后的新向量。公式(1)是判断映射关系是否为线性的评判依据。映射(变换)进行线性判别,基本思路是:

  1. 确定变换。明确给定的变换是如何改变待映射向量的。
  2. 验证加法性。 T ( u + v ) = T ( u ) + T ( v ) T(\boldsymbol{u} + \boldsymbol{v}) = T(\boldsymbol{u}) + T(\boldsymbol{v}) T(u+v)=T(u)+T(v)
  3. 验证(标量)乘法性。 T ( α u ) = α T ( u ) T(\alpha \boldsymbol{u}) = \alpha T(\boldsymbol{u}) T(αu)=αT(u)

如果同时满足2和3,那么我们称这个变换为线性变换,反之则为非线性变换。下面我们通过一个具体的例子熟悉一下这个概念。

例子1:“平移变换(Shift transformation)”是否为线性变换?

答:平移变换不是一个线性变换。理由如下:

  • 平移变换是对输入向量执行加法的变换(明确变换定义)
  • 计算 T ( u + v ) = T ( u ) + T ( v ) T(\boldsymbol{u} + \boldsymbol{v}) = T(\boldsymbol{u}) + T(\boldsymbol{v}) T(u+v)=T(u)+T(v)
  • 再计算 T ( α u ) = α T ( u ) T(\alpha \boldsymbol{u}) = \alpha T(\boldsymbol{u}) T(αu)=αT(u)

因为 ( 1 ) (1) (1) 的左边:
T ( c v + d w ) = c v + d w + u 0 T(c\bold v+d\bold w)=c\bold v+d\bold w+\bold u_0 T(cv+dw)=cv+dw+u0
右边:
T ( c v ) + T ( d w ) = c w + d v + 2 u 0 T(c\bold v)+T(d\bold w)=c\bold w+d\bold v+2\bold u_0 T(cv)+T(dw)=cw+dv+2u0
也就是:
T ( c v + d w ) ≠ T ( c v ) + T ( d w ) T(c\bold v+d\bold w)\ne T(c\bold v)+T(d\bold w) T(cv+dw)=T(cv)+T(dw)
当然如果 u 0 = 0 \bold u_0=\bold 0 u0=0,也是一个线性变换,这种变换叫做单位变换(Identity transformation)。

例子2:“左乘矩阵”是否为线性变换?

答:左乘矩阵是一个线性变换。左乘矩阵表示对一个向量执行左乘矩阵的映射。
T ( c v + d w ) = c A v + d A w = T ( c v + d w ) T(c\bold v+d\bold w)=cA\bold v+dA\bold w=T(c\bold v+d\bold w) T(cv+dw)=cAv+dAw=T(cv+dw)

例子3:仿射变换(Affine transformation)是否为线性变换?

答:仿射变换绝大多数情况下都不是线性变换,仿射变换通常可以表示为一个线性变换加上一个平移变换:
T ( v ) = A v + u 0 (1) T(v)=Av+u_0\tag{1} T(v)=Av+u0(1)
T ( c v + d w ) = A ( c v + d w ) + u 0 (2) T(c\bold v+d\bold w)=A(c\bold v +d\bold w)+\bold u_0\tag{2} T(cv+dw)=A(cv+dw)+u0(2)
T ( c v ) + T ( d w ) = A c v + A d w (3) T(c\bold v)+T(d\bold w)=Ac\bold v+Ad\bold w\tag{3} T(cv)+T(dw)=Acv+Adw(3)
显然, ( 2 ) ( 3 ) (2)(3) (2)(3)不相等,除非这个线性平移量 u 0 = 0 \bold u_0=0 u0=0

二、更多例子

2.1 点乘变换(Dot product transformation)

输入向量为 v = [ v 1 v 2 v 3 ] \bold v=\begin{bmatrix}v_1\\v_2\\v_3\end{bmatrix} v= v1v2v3 ,假设这个点乘变换向量为 a = [ 1 3 4 ] \bold a=\begin{bmatrix}1\\3\\4\end{bmatrix} a= 134

答:它是一个线性变换。假设输入向量是 v = ( v 1 , v 2 , v 3 ) \bold v=(v_1,v_2,v_3) v=(v1,v2,v3)。可以看出输入向量是一个属于 R 3 \mathbb{R}^3 R3 空间,但是其结果是一个数,也就是 R 1 \mathbb{R}^1 R1 空间,它相当于左乘了只有一行一个矩阵 A = [ 1 , 3 , 4 ] A=[1,3,4] A=[1,3,4],因为左乘一个矩阵是一个线性变换,所以点乘变换也是一个线性变换。

由上面的讨论可知:线性变换前后向量所处的向量可以属于不同维度

2.2 变换为取模 T ( v ) = ∣ ∣ v ∣ ∣ T(\bold v)=||v|| T(v)=∣∣v∣∣

答:它不是一个线性变换。因为既不满足 ∣ ∣ v + w ∣ ∣ = ∣ ∣ v ∣ ∣ + ∣ ∣ w ∣ ∣ ||v+w||=||v||+||w|| ∣∣v+w∣∣=∣∣v∣∣+∣∣w∣∣ ,也不满足 ∣ ∣ − v ∣ ∣ = − ∣ ∣ v ∣ ∣ ||-v||= -||v|| ∣∣v∣∣=∣∣v∣∣

2.3 变换为 T ( v ) T(v) T(v) 每个向量都旋转 30 30 30

答:旋转可以用一个矩阵来表示,属于左乘一个矩阵的情况,故为线性变换。

2.4 线到线,三角到三角的线性变换在图形上的特点

如果我们把这些向量用图形表示出来,比如在直线上:
在这里插入图片描述
如果你有一个向量的线性组合,例如重心或质心,变换后的结果将是每个单独向量变换结果的相同线性组合,不仅适用于几何变换,也适用于函数空间和更广泛的数学概念。

2.5 T: R 3 → R 2 \mathbb{R}^3\rightarrow \mathbb{R}^2 R3R2

T ( v ) = A v (3) T(v)=Av\tag{3} T(v)=Av(3)
输入向量 v ∈ R 3 v\in \mathbb{R}^3 vR3,也就是说矩阵 A A A 必须为一个 2 × 3 2\times3 2×3 的矩阵,输出向量是一个在 R 2 \mathbb{R}^2 R2的矩阵。事实上,所有线性变换都可以用一个矩阵来表示。

2.6 极坐标到直角坐标的变换

x = r cos ⁡ θ y = r sin ⁡ θ x=r\cos\theta\\ y=r\sin\theta x=rcosθy=rsinθ
输入向量是 ( r , θ ) ∈ V (r,\theta)\in V (r,θ)V输出向量是 ( x , y ) ∈ W (x,y)\in W (x,y)W。输入空间 V V V任选两个向量 v 1 v_1 v1 v 2 v_2 v2:
T ( v 1 + v 2 ) T(v_1+v_2) T(v1+v2)
因为 v 1 v_1 v1 v 2 v_2 v2都是极坐标,没有直接定义加法运算(或者是没有意义的),如果沿用直角坐标的意义,那么 T ( v 1 + v 2 ) T(v_1+v_2) T(v1+v2)
x r 1 + r 2 = ( r 1 + r 2 ) cos ⁡ θ y r 1 + r 2 = ( r 1 + r 2 ) sin ⁡ θ x_{r_1+r_2}=(r_1+r_2)\cos\theta\\ y_{r_1+r_2}=(r_1+r_2)\sin\theta xr1+r2=(r1+r2)cosθyr1+r2=(r1+r2)sinθ
其中 θ \theta θ不确定,因为它是直角坐标下的加法。接着计算 T ( v 1 ) + T ( v 2 ) T(v_1)+T(v_2) T(v1)+T(v2)
x r 1 + x r 2 = r 1 cos ⁡ θ 1 + r 2 cos ⁡ θ 2 y r 1 + y r 2 = r 1 sin ⁡ θ 1 + r 2 sin ⁡ θ 2 x_{r_1}+x_{r_2}=r_1\cos\theta_1+r_2\cos\theta_2\\ y_{r_1}+y_{r_2}=r_1\sin\theta_1+r_2\sin\theta_2 xr1+xr2=r1cosθ1+r2cosθ2yr1+yr2=r1sinθ1+r2sinθ2
可以看出这两个是不相等的。

三、线性变换的矩阵表达

前面我们介绍了线性映射的概念,接下来我们将用线性变换矩阵来表达这个映射。也就是如何利用一个线性变换矩阵完成对一个向量进行线性变换。向量空间的基确定之后,对应的数字序列就是坐标,所有在这个空间下的向量都可以用基和坐标两者表示。

向量名称空间名称空间维数
v v v 变换前的向量 V V V R n R^{n} Rn
T ( v ) T(v) T(v) or w w w 变换后的向量 W W W R m R^{m} Rm

我们的目标:找到线性变换对应的找到一个矩阵 A A A ,使得输入向量都能很轻松的通过左乘 A A A 获得到输出向量。也就是
w = A v (4) w=Av\tag{4} w=Av(4)
首先我们对矩阵 A A A 的形状是确定的,它必须是 m × n m\times n m×n的,有以下事实:

  • 和输入和输出的空间维度相关。既和变换前的空间 V V V 有关,也和变换后的空间 W W W 的维度有关。
  • 变换前后空间维度不一定相等 m ≠ n m\ne n m=n,可以变大,也可变小,甚至可以是维度的;

考虑向量空间 V V V 的一个任意向量 v v v
v = c 1 v 1 + c 2 v 2 + ⋯ + c n v n (5) v=c_1v_1+c_2v_2+\cdots+c_nv_n\tag{5} v=c1v1+c2v2++cnvn(5)
因为是线性变换,所以有:
T ( v ) = c 1 T ( v 1 ) + c 2 T ( v 2 ) + ⋯ + c n T ( v n ) (6) T(v)=c_1T(v_1)+c_2T(v_2)+\cdots+c_nT(v_n)\tag{6} T(v)=c1T(v1)+c2T(v2)++cnT(vn)(6)
写成矩阵形式,方便我们得到线性转换矩阵 A A A
T ( v ) = w = [ T ( v 1 ) T ( v 2 ) ⋯ T ( v n ) ] [ c 1 c 2 ⋮ c n ] (7) T(v)=w=\begin{bmatrix}T(v_1)&T(v_2)&\cdots&T(v_n)\end{bmatrix}\begin{bmatrix}c_1\\c_2\\\vdots c_n\end{bmatrix}\tag{7} T(v)=w=[T(v1)T(v2)T(vn)] c1c2cn (7)
这个矩阵就是我们需要的转换矩阵:
A = [ T ( v 1 ) T ( v 2 ) ⋯ T ( v n ) ] (8) A=\begin{bmatrix}T(v_1)&T(v_2)&\cdots&T(v_n)\end{bmatrix}\tag{8} A=[T(v1)T(v2)T(vn)](8)
这个转换矩阵 A A A 完成了对输入向量空间中的 v v v 的转换,将其转换到另一或者同一向量空间中的向量 w w w 中。线性变换是映射,它的存在与有没有基无关。

更多时候,我们是借助基间关系来确定线性变换关系的。对于任一一个输入向量的基 v i v_i vi,用输出空间的基 w j w_j wj 来表示:
T ( v i ) = a 1 i w 1 + a 2 i w 2 + ⋯ + a n i w m (9) T(v_i)=a_{1i}w_1+a_{2i}w_2+\cdots+a_{ni}w_m\tag{9} T(vi)=a1iw1+a2iw2++aniwm(9)
知道了每个输入基用输出基的表示后,将组合系数组合成一个列向量替换每一个 T ( v i ) T(v_i) T(vi) 就能确定转换矩阵的数字形式。也就是:
A c = d (10) Ac=d\tag{10} Ac=d(10)
其中 c c c 表示在输入基的坐标, d d d 表示在输出基下的坐标。

四、几个实际例子

例子1:假设已知输入基和输出基之间的线性映射结果,比如:
v 1 = [ 1 0 ] v 2 = [ 0 1 ] v_1=\begin{bmatrix}1\\0\end{bmatrix} \quad v_2=\begin{bmatrix}0\\1\end{bmatrix} v1=[10]v2=[01]
经过新的变换后的结果为: T ( v 1 ) = [ 2 3 4 ] T ( v 2 ) = [ 5 5 5 ] T(v_1)=\begin{bmatrix}2\\3\\4\end{bmatrix} \quad T(v_2)=\begin{bmatrix}5\\5\\5\end{bmatrix} T(v1)= 234 T(v2)= 555
对应的转换矩阵 A A A 应为:
A = [ T ( v 1 ) T ( v 2 ) ] = [ 2 5 3 5 4 5 ] A=\begin{bmatrix}T(v_1)&T(v_2)\end{bmatrix}=\begin{bmatrix}2&5\\3&5\\4&5\end{bmatrix} A=[T(v1)T(v2)]= 234555
给定变换前的向量 x = [ 1 1 ] x=\begin{bmatrix}1\\1\end{bmatrix} x=[11],线性变换的结果就可以通过计算得到线性变换结果: y = A x = [ 7 8 9 ] y=Ax=\begin{bmatrix}7\\8\\9\end{bmatrix} y=Ax= 789
因为我们不知道变换后基是什么,

这个例子是一个特殊情况,经过线性变换的基如果在单位正交基下,输出基坐标恰好就是对输入基线性变换后组成的矩阵左乘输入坐标即可。事情不都是这么简单,来看下一个例子:

例子2: 已知变换前向量空间为 V = R 2 \bold V=\bold R^2 V=R2,线性变换后的向量空间为 W = R 2 \bold W= R^2 W=R2,这个变换是 T ( v ) = v T(v)=v T(v)=v。假设变换前后向量空间的基都处于同一坐标系,那么:
V = [ v 1 v 2 ] = [ 3 6 3 8 ] W = [ w 1 w 2 ] = [ 3 0 1 2 ] V=\begin{bmatrix}v_1&v_2\end{bmatrix}=\begin{bmatrix}3&6\\3&8\end{bmatrix} \quad W=\begin{bmatrix}w_1&w_2\end{bmatrix}=\begin{bmatrix}3&0\\1&2\end{bmatrix} V=[v1v2]=[3368]W=[w1w2]=[3102]

因为 T ( v ) = v T(v)=v T(v)=v 是一个单位变换(Identity transformation),也就是变换前后向量保持不变(没错,说的就是基变换!基变换并不改变向量本来的模样,只是换了组成要素——基):

v 1 = 1 w 1 + 1 w 2 v 2 = 2 w 1 + 3 w 2 (9) v_1=1w_1+1w_2\\v_2=2w_1+3w_2\tag{9} v1=1w1+1w2v2=2w1+3w2(9)
注意上面成立的条件是线性变换是 T ( v ) = v T(v)=v T(v)=v 。这样我们就知道变换后在新向量空间中的表达了:
T ( v 1 ) = [ 1 1 ] T ( v 2 ) = [ 2 3 ] T(v_1)=\begin{bmatrix}1\\1\end{bmatrix}\quad T(v_2)=\begin{bmatrix}2\\3\end{bmatrix} T(v1)=[11]T(v2)=[23]
所需要的矩阵 A = [ 1 2 1 3 ] A=\begin{bmatrix}1&2\\1&3\end{bmatrix} A=[1123]。如果换成矩阵形式求解这个矩阵,那应该是:
W A = V A = W − 1 V WA= V\quad A=W^{-1}V WA=VA=W1V

这个例子告诉我们,同一向量空间的单位变换对应的线性变换矩阵并不是 I I I ,除非他们的完全基一样。

OK!上面求得矩阵 A A A 的关键找到了等式 ( 9 ) (9) (9),一般地[1],对于 T ( v ) = v T(v)=v T(v)=v
u = c 1 v 1 + ⋯ + c n v n u = d 1 w 1 + ⋯ + d n w n (10) u=c_1v_1+\cdots+c_nv_n\\ u=d_1w_1+\cdots+d_nw_n\tag{10} u=c1v1++cnvnu=d1w1++dnwn(10)
用矩阵表达则为:
[ T ( v 1 ) T ( v 2 ) ⋯ T ( v n ) ] c = [ w 1 w 2 ⋯ w m ] d V c = W d \begin{aligned} \begin{bmatrix}T(v_1)&T(v_2)&\cdots&T(v_n)\end{bmatrix}c&=\begin{bmatrix}w_1&w_2\cdots&w_m\end{bmatrix}d\\ Vc&=Wd \end{aligned} [T(v1)T(v2)T(vn)]cVc=[w1w2wm]d=Wd
线性变换后的向量为:
d = W − 1 V c d= W^{-1}Vc d=W1Vc
如果输入向量基是单位正交基,那么有:
d = W − 1 c d=W^{-1}c d=W1c

例子3:求多项式微分: v = c 1 + c 2 x + c 3 x 2 + c 4 x 3 v=c_1+c_2x+c_3x^2+c_4x^3 v=c1+c2x+c3x2+c4x3 的线性转换矩阵 A A A

这次的例子不再是 T ( v ) = v T(v)=v T(v)=v 这种单位线性变换,而微分变换,微分变换也是一种线性变换。可以看出变换前的基由四个部分组成,分别是 : 1 , x , x 2 , x 3 1,x,x^2,x^3 1,x,x2,x3 ,输出基是: 1 , x , x 2 1,x,x^2 1,x,x2。分别输出基对他们进行线性变换 T ( v ) = d v d x T(v)=\frac{dv}{dx} T(v)=dxdv,结果用输出基表示。如第一个输入基是 1 1 1,那么:
1 ′ = 0 = 0 × 1 + 0 × x + 0 × x 2 x ′ = 1 = 1 × 1 + 0 × x + 0 × x 2 ( x 2 ) ′ = 2 x = 0 × 1 + 2 × x + 0 × x 2 ( x 3 ) ′ = 3 x 2 = 0 × 1 + 0 × x + 3 × x 2 \begin{aligned} 1'&=0&=0\times1+0\times x+0\times x^2\\ x'&=1&=1\times1+0\times x+0\times x^2\\ (x^2)'&=2x&=0\times1+2\times x+0\times x^2\\ (x^3)'&=3x^2&=0\times1+0\times x+3\times x^2 \end{aligned} 1x(x2)(x3)=0=1=2x=3x2=0×1+0×x+0×x2=1×1+0×x+0×x2=0×1+2×x+0×x2=0×1+0×x+3×x2
微分矩阵 A A A 可以写成:
A = [ 0 1 0 0 0 0 2 0 0 0 0 3 ] A=\begin{bmatrix}0&1&0&0\\0&0&2&0\\0&0&0&3\end{bmatrix} A= 000100020003


如果线性变换不是单位变换,比如说 T ( v ) = 3 v T(v)=3v T(v)=3v,应该对其做一些调整:
u = c 1 v 1 + ⋯ + c n v n 3 u = d 1 w 1 + ⋯ + d n w n u=c_1v_1+\cdots+c_nv_n\\ 3u=d_1w_1+\cdots+d_nw_n u=c1v1++cnvn3u=d1w1++dnwn

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值