首页 > 技术文章 > 线性代数之——线性变换及对应矩阵

seniusen 2019-11-24 22:46 原文

1. 线性变换的概念

当一个矩阵 \(A\) 乘以一个向量 \(\boldsymbol v\) 时,它将 \(\boldsymbol v\) 变换到另一个向量 \(A\boldsymbol v\)。进来的是 \(\boldsymbol v\),出去的是 \(T( \boldsymbol v) = A\boldsymbol v\)。一个变换 \(T\) 就像一个函数一样,进来一个数字 \(x\),得到 \(f(x)\)。但更高的目标是一次考虑所有的 \(\boldsymbol v\),我们是将整个空间 \(\boldsymbol V\) 进行变换当我们用 \(A\) 乘以每一个向量 \(\boldsymbol v\) 时。

一个变换 \(T\),为空间 \(\boldsymbol V\) 中的每一个向量 \(\boldsymbol v\) 分配一个输出 \(T( \boldsymbol v)\)。这个变换是线性的,如果它满足:

\[(a) \quad T(\boldsymbol v+\boldsymbol w)=T(\boldsymbol v) + T(\boldsymbol w) \quad (b) \quad T(c\boldsymbol v)=cT(\boldsymbol v) \space 对任意 \space c \space 成立 \]

我们可以将这两个条件结合成一个,

\[T(c\boldsymbol v+d\boldsymbol w)=cT(\boldsymbol v) + dT(\boldsymbol w) \]

矩阵相乘满足线性变化,因为 \(A(c\boldsymbol v+d\boldsymbol w)=cA\boldsymbol v + dA\boldsymbol w\) 始终成立。

线性变换满足线到线,三角形到三角形,看下图。

在一条线上的三个点经过变换后仍然在一条线上,变换前等距离的点变换后仍然是等距离的点,输入是一个三角形变换后输出还是一个三角形。这种线性可以扩展到三个向量或者 N 个向量的组合

变换有自己的语言,如果没有矩阵的话,我们没办法讨论列空间。但是这些思想可以被保留,比如列空间包含所有的线性组合 \(Av\),零空间包含所有使得 \(Av=0\) 的输入。将它们转化为值域(range)和核(kernel):

\(T\) 的值域 = 所有输出 \(T(v)\) 的集合,对应于列空间。
\(T\) 的核 = 所有使得 \(T(v)=0\) 的输入的集合,对应于零空间。

投影任意一个三维向量到 \(xy\) 平面,那么我们有 \(T(x, y, z)=(x, y, 0)\)。值域就是这个平面,包含了所有的 \(T(v)\);核是 \(z\) 轴,它们被投影到了零点。这是一个线性的变换。

投影任意一个三维向量到 \(z=1\) 平面,那么我们有 \(T(x, y, z)=(x, y, 1)\)。这不是一个线性的变换,为什么呢?它根本不能将零向量投影到零点,而这是线性变换必须满足的条件。

假设 \(A\) 是一个可逆的矩阵,那么核是零向量,值域 \(W\) 和输入空间 \(V\) 相同。有另一个线性变化是乘以矩阵 \(A^{-1}\),它将每一个 $T(v) $都带回到 \(v\),有,

\[T^{-1}(T(v))=v \Longleftrightarrow A^{-1}Av=v \]

我们遇到了一个不可避免的问题,所有的线性变换都可以由一个矩阵产生吗?答案是肯定的,所有的变换比如旋转、投影……背后都藏着对应的一个矩阵。

最后我们来直观地感受一下线性变换,看一个矩阵是怎么旋转、拉伸或者以其它方式改变输入的房子的。

2. 线性变换的对应矩阵

这部分的核心在于,如果我们知道了基向量 \(\boldsymbol{v_1} \cdots \boldsymbol{v_n}\) 的变换 \(T(\boldsymbol{v_1}) \cdots T(\boldsymbol{v_n})\),那么由于变换是线性的,我们就知道了任意输入向量 \(\boldsymbol{v}\) 的变换 \(T(\boldsymbol{v})\)

每个向量 \(\boldsymbol{v}\) 都可以表示为基向量的唯一线性组合 \(c_1\boldsymbol{v_1}+ \cdots +c_n\boldsymbol{v_n}\),又由于 \(T\) 是线性变换,那么必有 \(T(\boldsymbol{v}) = c_1T(\boldsymbol{v_1})+ \cdots +c_nT(\boldsymbol{v_n})\)

函数 \(1, x, x^2, x^3\) 的导数是 \(0, 1, 2x, 3x^2\)。这里,\(1, x, x^2, x^3\)是立方多项式空间的一个基,输入空间 \(V\) 包含它们的所有组合,四个基的导数可以告诉我们空间 \(V\) 中的所有导数。

针对求导这个变换 \(T\),我们求解 \(d\boldsymbol v/dx=\boldsymbol0\) 来找到它的核。解是 \(\boldsymbol v=常数\),因此 \(T\) 的零空间是一维的,包含所有的常函数。我们查看 \(T(v) = d\boldsymbol v/dx\) 的所有输出来找到它的值域,由于输入是三次多项式,三次多项式的导数是二次多项式,所以如果输出空间 \(W\) 是二次多项式空间的话, 那么 \(T\) 的值域是整个 \(W\) ,维度为 3。核的维度+值域的维度=输入空间的维度。

导数将立方空间 \(V\) 变换到平方空间 \(W\),对应的矩阵是 \(3×4\) 大小的。

为什么 \(A\) 是正确的矩阵,我们可以看到乘以矩阵 \(A\) 和变换 \(T\) 是一致的,\(\boldsymbol{v}=a+bx+cx^2+dx^3\) 的导数是 \(T(v)=b+2cx+3dx^2\)

然后我们来看积分变换 \(T^{-1}\),对应的矩阵是 \(4×3\) 大小的,\(\boldsymbol{w}=B+Cx+Dx^2\) 的导数是 \(T^{-1}(w)=0+Bx+\frac{1}{2}Cx^2+\frac{1}{3}Dx^3\)

长方形的矩阵 \(A\) 没有双边逆矩阵,但它有单边逆,积分是导数的单边逆。

如果你对一个函数积分后再求导,那么你又回到了起始函数,所以 \(AA^{-1}=I\)。但是,如果你先求导再积分,常数项就会丢失,\(T^{-1}T(1)=0\),这也就是为什么 \(A^{-1}A\) 的第一列为 0。

现在我们来构建任意线性变换的矩阵。假设变换 \(T\)\(n\) 维空间 \(V\) 变换到 \(m\) 维空间 \(W\)\(\boldsymbol{v_1} \cdots \boldsymbol{v_n}\)\(V\) 的一组基向量,\(\boldsymbol{w_1} \cdots \boldsymbol{w_m}\)\(W\) 的一组基向量。那么矩阵 \(A\)\(m×n\) 大小的,要找到它的第一列,我们应用 \(T\) 到第一个基向量 \(\boldsymbol{v_1}\)\(T(\boldsymbol{v_1})\) 位于 \(W\) 空间并有,

\[T(\boldsymbol{v_1}) = a_{11}\boldsymbol{w_1}+ \cdots +a_{m1}\boldsymbol{w_m} \]

这些数字就是 \(A\) 的第一列元素,同理我们可以得到矩阵的所有元素。

所有的输入向量都可以表示为 \(V\) 中基向量的线性组合,变换后的输出则是 \(W\) 中基向量的线性组合。矩阵 \(A\) 告诉了我们变换 \(T\) 做了什么,任何从 \(V\)\(W\) 的变换都可以转换为一个矩阵,这个矩阵则取决于基向量的选择。

两个变换 \(S\)\(T\) 分别用矩阵 \(B\)\(A\) 表示。当我们应用 \(T\) 变换到 \(S\) 变换的输出,我们得到了变换的组合 \(TS\);当我们在 \(B\) 之后应用 \(A\),我们得到了矩阵相乘 \(AB\)矩阵相乘给出了变换 \(TS\) 的正确矩阵 \(AB\)

获取更多精彩,请关注「seniusen」!

推荐阅读