线性变化要满足两点性质:
- 直线(连续的点)在变换后还是直线。
- 原点不变。
假设有坐标轴(基底)
i
^
\widehat{i}
i
和
j
^
\widehat{j}
j
:
i
^
=
[
1
0
]
,
j
^
=
[
0
1
]
\widehat{i}=\begin{bmatrix} 1 \\ 0 \end{bmatrix}, \widehat{j}=\begin{bmatrix} 0 \\ 1 \end{bmatrix}
i
=[10],j
=[01]
若向量
v
⃗
=
[
−
1
2
]
\vec{v}=\begin{bmatrix} -1 \\ 2 \end{bmatrix}
v=[−12],则可以使用它们表示成:
v
⃗
=
−
1
i
^
+
2
j
^
\vec{v}=-1\widehat{i}+2\widehat{j}
v=−1i
+2j
当空间进行一次线性变换后,
i
^
\widehat{i}
i
和
j
^
\widehat{j}
j
都发生了变化,但
v
⃗
\vec{v}
v与它们的关系却保持不变。假设这些向量经过变换变成了:
T
r
a
n
(
i
^
)
=
[
1
−
2
]
,
T
r
a
n
(
j
^
)
=
[
3
0
]
T
r
a
n
(
v
⃗
)
=
[
5
2
]
Tran(\widehat{i})=\begin{bmatrix} 1 \\ -2 \end{bmatrix}, Tran(\widehat{j})=\begin{bmatrix} 3 \\ 0 \end{bmatrix} \\ Tran(\vec{v})=\begin{bmatrix} 5 \\ 2 \end{bmatrix}
Tran(i
)=[1−2],Tran(j
)=[30]Tran(v)=[52]
发现依然满足:
T
r
a
n
(
v
⃗
)
=
−
1
T
r
a
n
(
i
^
)
+
2
T
r
a
n
(
j
^
)
=
−
1
[
1
−
2
]
+
2
[
3
0
]
=
[
−
1
(
1
)
+
2
(
3
)
−
1
(
−
2
)
+
2
(
0
)
]
=
[
5
2
]
\begin{aligned} Tran(\vec{v})&= -1 Tran(\widehat{i})+2Tran(\widehat{j}) \\ &= -1 \begin{bmatrix} 1 \\ -2 \end{bmatrix} + 2 \begin{bmatrix} 3 \\ 0 \end{bmatrix} \\ &= \begin{bmatrix} -1(1) + 2(3) \\ -1(-2) + 2(0) \end{bmatrix} \\ &= \begin{bmatrix} 5 \\ 2 \end{bmatrix} \end{aligned}
Tran(v)=−1Tran(i
)+2Tran(j
)=−1[1−2]+2[30]=[−1(1)+2(3)−1(−2)+2(0)]=[52]
实际上,将两个基底在线性变换后变成的两个列向量合在一起,就是一个表示该线性变换的矩阵;对原向量左乘该矩阵,就能得到线性变换后的向量:
T
r
a
n
(
v
⃗
)
=
M
∗
v
⃗
=
[
1
3
−
2
0
]
[
−
1
2
]
=
−
1
[
1
−
2
]
+
2
[
3
0
]
=
[
−
1
(
1
)
+
2
(
3
)
−
1
(
−
2
)
+
2
(
0
)
]
=
[
5
2
]
\begin{aligned} Tran(\vec{v})&= M*\vec{v} \\ &= \begin{bmatrix} 1 & 3 \\ -2 & 0 \end{bmatrix} \begin{bmatrix} -1 \\ 2 \end{bmatrix} \\ &= -1 \begin{bmatrix} 1 \\ -2 \end{bmatrix} + 2 \begin{bmatrix} 3 \\ 0 \end{bmatrix} \\ &= \begin{bmatrix} -1(1) + 2(3) \\ -1(-2) + 2(0) \end{bmatrix} \\ &= \begin{bmatrix} 5 \\ 2 \end{bmatrix} \end{aligned}
Tran(v)=M∗v=[1−230][−12]=−1[1−2]+2[30]=[−1(1)+2(3)−1(−2)+2(0)]=[52]
把数字换成符号,可以得到一个等式:
[ x i x j y i y j ] [ x y ] = x [ x i y i ] + y [ x j y j ] = [ x i ∗ x + x j ∗ y y i ∗ x + y j ∗ y ] \begin{bmatrix} x_i & x_j \\ y_i & y_j \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} = x \begin{bmatrix} x_i \\ y_i \end{bmatrix} + y \begin{bmatrix} x_j \\ y_j \end{bmatrix} = \begin{bmatrix} x_i * x + x_j * y \\ y_i * x + y_j * y \end{bmatrix} [xiyixjyj][xy]=x[xiyi]+y[xjyj]=[xi∗x+xj∗yyi∗x+yj∗y]
举个例子,如果要进行一次线性变换,使得二维空间被逆时针旋转90度,那么,可以知道:
T
r
a
n
(
i
^
)
=
[
0
1
]
,
T
r
a
n
(
j
^
)
=
[
−
1
0
]
Tran(\widehat{i})=\begin{bmatrix} 0 \\ 1 \end{bmatrix}, Tran(\widehat{j})=\begin{bmatrix} -1 \\ 0 \end{bmatrix}
Tran(i
)=[01],Tran(j
)=[−10]
于是可以直接写出线性变换对应的矩阵:
[
0
−
1
1
0
]
\begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix}
[01−10]
将任意向量左乘该矩阵,就能使其旋转90度,如:
[
0
−
1
1
0
]
[
−
1
2
]
=
[
−
2
−
1
]
\begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} \begin{bmatrix} -1 \\ 2 \end{bmatrix} = \begin{bmatrix} -2 \\ -1 \end{bmatrix}
[01−10][−12]=[−2−1]
用这个视角来看,一个原地不动的线性变换对应的矩阵自然就是单位矩阵,因为:
T
r
a
n
(
i
^
)
=
[
1
0
]
,
T
r
a
n
(
j
^
)
=
[
0
1
]
Tran(\widehat{i})=\begin{bmatrix} 1 \\ 0 \end{bmatrix}, Tran(\widehat{j})=\begin{bmatrix} 0 \\ 1 \end{bmatrix}
Tran(i
)=[10],Tran(j
)=[01]
直接得到矩阵:
[
1
0
0
1
]
\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}
[1001]