• 线性代数之——线性变换及对应矩阵


    1. 线性变换的概念

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

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

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

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

    [T(coldsymbol v+doldsymbol w)=cT(oldsymbol v) + dT(oldsymbol w) ]

    矩阵相乘满足线性变化,因为 (A(coldsymbol v+doldsymbol w)=cAoldsymbol v + dAoldsymbol 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. 线性变换的对应矩阵

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

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

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

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

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

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

    然后我们来看积分变换 (T^{-1}),对应的矩阵是 (4×3) 大小的,(oldsymbol{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)(oldsymbol{v_1} cdots oldsymbol{v_n})(V) 的一组基向量,(oldsymbol{w_1} cdots oldsymbol{w_m})(W) 的一组基向量。那么矩阵 (A)(m×n) 大小的,要找到它的第一列,我们应用 (T) 到第一个基向量 (oldsymbol{v_1})(T(oldsymbol{v_1})) 位于 (W) 空间并有,

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

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

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

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

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

  • 相关阅读:
    npropress进度条插件的使用
    让img图片像背景一样显示
    vue-cli3配置多页面入口
    7中漂亮的纯css字体
    速查手册
    推荐系统架构
    leetcode 172. 阶乘后的零
    C++ string和int互相转换
    特征分解
    线性代数基础
  • 原文地址:https://www.cnblogs.com/seniusen/p/11924958.html
Copyright © 2020-2023  润新知