一、线性变换的概念
线性变换是一种映射,映射前后向量空间满足:
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)是判断映射关系是否为线性的评判依据。映射(变换)进行线性判别,基本思路是:
- 确定变换。明确给定的变换是如何改变待映射向量的。
- 验证加法性。 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)
如果同时满足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 R^3\rightarrow R^2 R3→R2
T
(
v
)
=
A
v
(3)
T(v)=Av\tag{3}
T(v)=Av(3)
输入向量
v
∈
R
3
v\in R^3
v∈R3,也就是说矩阵
A
A
A 必须为一个
2
×
3
2\times3
2×3 的矩阵,输出向量是一个在
R
2
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 所处向量空间的基有
n
n
n,那么有:
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)]
c1c2⋮cn
(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)
其中
T
(
v
i
)
(
i
=
0
,
1
,
⋯
n
)
T(v_i)\quad (i=0,1,\cdots n)
T(vi)(i=0,1,⋯n) 不就是对输入向量基每一个进行的线性变换吗?显然的它的列与输入向量的维度有关,行与什么有关呢?当然是和输出向量基有关。也就是说,我们只要知道输入基的所有线性变换在新输出基下的表达,那么我们就可以完全确定这个线性变换。
例子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=W−1V
这就告诉我们,如果我们要求线性变换矩阵,那么只需要将输出向量的基矩阵的逆
W
−
1
W^{-1}
W−1并且右乘输入基矩阵
V
V
V。
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=[w1w2⋯wm]d=Wd
线性变换后的向量为:
d
=
W
−
1
V
c
d= W^{-1}Vc
d=W−1Vc
如果输入向量基是单位正交基,那么有:
d
=
W
−
1
c
d=W^{-1}c
d=W−1c
例子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}
1′x′(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
文章来源:https://www.toymoban.com/news/detail-798099.html
如果线性变换不是单位变换,比如说
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文章来源地址https://www.toymoban.com/news/detail-798099.html
到了这里,关于31线性变换及其矩阵的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!