关于线性代数当中的基变换和线性变换这一块,个人觉得特别繁杂,看起来简单,但是推导起来有点混乱,于是写下这篇博客记录一下初次学习的笔记和一些理解。本文参考麻省理工Gilbert Strang的线性代数公开课和戴华老师的《矩阵论》所写,理解有误的地方请大家指出。

学习线性代数可以从很多个地方入手,比如说同济版的《线性代数》从行列式入手(个人觉得很难接受);Mit公开课上的以矩阵的4个子空间入手;据说从线性变换入手也是可以的,所以博主想写的就是一个从线性变换入手的一个思路,在开始之前,大家可以先想象一副完全空白的画面,完全空白。

这个完全空白的画面是一个空间 V,首先往里面放入一个线性变换 T,所谓的线性变换,实际上是一条规则,所以现在我们的空间中仍然是一片空白。这个规则说,有一些变换比较特别(也可以理解成某个函数),它满足:

这是一条最基本的规则,非常的重要。下面我们继续来完善这个规则,首先是输入和输出,我们并没有限定输入和输出的维数是什么,所以输入和输出的维数不必相等(千万不要以为线性变换对应的矩阵一定是方阵),比方说 T :R3 -> R2 ,那么在我们的空间 V 中的任意一个3维vector都可以通过 T 变换成一个唯一的2维vector,而且 T 满足上面的规则。注意,现在所说的vector只是一个箭头,它并没有坐标,例如下面的 T(A)=  B:

那你可能会问,何来3维和2维的区别呢?这和它没有坐标是一个道理,因为我们还没有指定基。3维说明它有3个线性无关的基向量,2维说明它有2个线性无关的基向量,当我指定了基以后,3维的vector就可以表达成 <a1, a2, a3> ,而2维的vector可以表达成 <b1, b2>了 ,现在我来指定3维空间的基是 (v1, v2, v3),2维空间的基是 (w1, w2),然后当然的在空间 V 中划分出3维空间和2维空间来:

然后你又会问,那坐标得怎么算呢?这里可以这么理解,提供基的目的是提供一个基准,我们得同时给定一个方向和一个单位长度,这好比我指定了地图上的东和北是右和上两个方向,指定111千米是1度,这才可以用 <a, b> ,也就是经纬度来定位地球上的每一个点。OK,那我们就这么来办,我指定各个维度的方向就是各个基向量的方向,各个维度的单位长度就是各个基向量的长度,所以,比方说 v1 我就可以用 <1,0,0> 来表示,因为 v1 = 1·v1 + 0·v2 + 0·v3 嘛,这样一来空间中的每个vector都可以用坐标来表示了。当然了,要是你用1/2的长度作为单位长度,那 v1 就变成 <2,0,0>了,接下来的讨论,如果给出基,那默认以基向量的方向为维度的方向,以基向量的长度为单位长度。

搞清楚怎么算坐标之后,我们继续来描绘这个 T 变换,现在的情况是,你定义了一个 T 变换,你自己知道 A 会变成 B,或许你还知道 C 会变成 D,还有很多很多,但是你要怎么说清楚它呢?你总不能见到一个人,就把你的所有ABCD都拿出来,然后告诉它这就是我的 T 变换了吧,那要是我来给你一个 E,可能连你自己都不知道输出是什么呢!所以我们要找到一种用语言来描绘的方法,把这件事情给说定了。(下面是堆公式的时间了!)

首先我拿出一对输入基(v1,v2,v3 ... vn)和输出基(w1, w2, w3 ... wm),(这个 vn 和 wm 习惯就好!),首先,你自己定义的 T 变换,这个变换对输入基的结果你得知道吧,比方说,你得知道经过 T 变换后的 v1 是(w1,... wm) 的怎样的线性组合,再换句话说,原本在(v1, ... vn)下坐标为 <1,0 ... 0> 的 v1, 经过 T 变换后在(w1,... wm)下的坐标是什么。有些绕,但是要记住这个 T 是你自己定义的,所以变换后的结果就是你说了算的,所以不要问我为什么 T(A)= B 哦!

为了不至于混乱,这里给出两条公式做个对比,用基的线性组合来表示,则不必想到基(的基)是什么,就如上图一样,而用到了坐标,就一定要考虑到基是什么,因为是先有了基才有了坐标:

OK,上公式,假设输入基是(v1,v2,... vn),输出基是(w1,w2,... wm),所以你一定得知道:

不知道b的下标要怎么摆的话看下图,我们要改写成如下矩阵的形式,也就是每一列是一组线性组合,所以B矩阵的每一列就是 vi 经过变换后在新基的坐标了,等会我们要用到:

准备工作这就做好了,下面我们来真正的描述变换 T,在输入基的空间下,所有的vector都是基向量的线性组合,即:

对vector x 进行 T 变换,我们用到了 T 的基本规则:

注意了,上面的式子用了基表示法,我们可以把它转换成坐标表示法(将右边部分看成是W的线性组合,Ba是坐标),这样就可以得到我们的一般形式:

大功告成,如果这次你给我一个E,那我就可以告诉你输出了,就是BE嘛,所以说我们的变换 T 就给真正的定义下来,我们可以留意到,每一个变换 T 在给定的一组输入基和输出基下都有一个对应的矩阵B,B怎么来的呢,这是通过我们事先给定的通过两组基推算出来的,所以,变换 T,输入输出基,矩阵B是三位一体的,确定两个就可以推出另外一个了。

现在我们来审视一下我们的变换 T 能用来干什么。我们的 T 可以处理的问题是,从一个输入基(v1,v2,... vn)到一个输出基(w1,w2, ... wm)的转换,一般来说这个转换是等价的,举个例子,我们处理一些物理问题的时候,我们可以先从原来的xy坐标系转换成以另外一些更加便于计算的坐标系,例如速度方向作为一个维度,垂直速度的方向作为另一个维度,这个过程一般是等价的,做这种变换的目的是方便我们计算,是一种坐标系的变换,当然你也可以认为这种变换用来做降维或者升维。但是更多的情况是,我们要处理另外一种问题,例如求一个vector旋转90度后的结果,或者说求一个vector到另一个vector的投影,这时候再要进行坐标系的变换就不合适了。其实我们早就习惯这种变换了,这是一种映射,一条函数,变换前后坐标系当然不变,就像求 f(x)= x * x,你会考虑变换坐标系来增加你的计算量吗,不会,所以,更加一般的情况是输入基和输出基一致的情况,也就是(v1,v2,... vn)= (w1,w2, ... wm)的情况,当然,这种变换也有对应的矩阵B,计算方法也是一样的。

以下的讨论暂时不考虑基变换,当出现基的时候,意思是输入基和输出基都是这个基。现在的情况是,我们的变换 T 可能是旋转变换,可能是投影变换等等,对应一个矩阵B,我们想知道一个vector在这个变换下的结果,我们就要计算一次T(x)= B·x,那我们当然希望这个B尽可能简单,例如是对角阵,内积计算起来速度就非常快。而这个B又是根据 T 和基计算出来的,所以,现在我们要确定一个基,让这个B最简单。

同一个变换 T 在不同基下的矩阵是不同的,但既然是同一个变换,那总得有点联系吧。首先假设有两组基(v1...,vn)和(w1...,wm),满足下面的关系,C 叫过渡矩阵:

我们从两组基的角度计算结果,注意坐标表示法和基表示法的转换:

所以我们得到矩阵A和B的关系,我们把这种关系定义成两个矩阵相似,很显然这是一种把矩阵进行划分的方法,也就是说给一个 T 变换,那么我们选不同基对应的矩阵都是一类,不同 T 变换而来的矩阵又是一类。

我们现在已经掌握了方法了,剩下就是计算的问题了。假设现在我们有 T ,基是(n1..., nn),对应的矩阵是A,只不过这个A的计算比较麻烦,我们需要找到一组新的基(x1...,xm),使得对应的基是一个对角阵,记为 Λ:

用矩阵展开,左右只取结果的某一列,就可以得到:

看到这里应该就知道了 λ 就是特征值了,cj 就是对应的特征向量,所以为什么说在写 λ 的时候一定要注意对着特征向量写,因为对错了就错了。如果你细心的话,你也可以知道 cj 其实是xj在原基(n1,... nn)下的坐标:

如果我们再研究一下 λ,把 A 看成是某个基下的矩阵的话,λ的意义就在于,对于变换 T 是伸缩变换,缩放的倍数是λ,或者说,对于某些矩阵,一个vector和它进行内积之后方向不发生改变:

这里有一个非常容易搞混的地方,你这样子前后的基不也是改变了吗,这也是基变换吧?注意了,基变换的意思是有一个变换,连接两个空间,输入在一个空间,输出在另一个空间;而这里是基选择的问题,同一个线性变换,输入空间和输出空间相同,但是我可以选择一组基,让我的计算更加简单,千万不要搞错了。

这种选择到现在来说非常好,只是有一个问题,这样的方法成功的前提是 CΛ = AC,如果 A 不满秩,说明解出来的 λ 不够用,也就是说 A 不可对角化,那就不成立了,这个时候,就要化成 Jordan 型了。关于Jordan的推导有点长就不写了,但是思想是一样的,就是让 T 的矩阵尽可能简单,既然不可对角化,就退而求其次罢了。

整个推导就差不多结束了,然后说说个人的一些想法。其实我们学习的时候,直觉上是和从上面推导的过程相反的,因为基变换对我们来说是透明的,我们不需要去考虑到它,在使用的时候往往是先有一个矩阵A,然后我直接计算 Ax 就好了,我根本不用去思考这是一种怎样的变换,基是什么,也没有什么不妥,我们当然不需要在意从a,到Xa,再到YXa经历了怎么样的变换,经过了3个怎么样的基,如果你强行觉得要思考的话,你可以认为我们一直以直角坐标系作为坐标系,输入空间和输出空间一样,然后反过来再推导出变换 T 到底是什么。还有最后的最后,上面的整个推导博主都回避了一个问题,那就是为什么Ax=A·x,其实整个构建都在于定义了点乘上,如果我说Ax = A+[x,x,...,x],类似于矩阵乘等于广播加的话,整个推导就要重新搭建了。

基变换与线性变换梳理相关推荐

  1. 老王说ros的tf库

    ros的tf库 为了这个题目,我是拿出了挤沟的精神挤时间,是下了功夫的,线性代数.矩阵论复习了,惯性导航里的dcm.四元数也了解了,刚体力学也翻了,wiki里的欧拉角也读了,tf的tutorial.p ...

  2. 【总结】线性代数的本质 - 3

    文章目录 3. 其他 3.1 向量点积 3.1.1 定义和几何解释 3.1.2 点积的对偶性 3.2 向量叉积 3.2.1 叉积基本定义 3.2.2 叉积的几何解释 3.2.3 点积与叉积的区别和联系 ...

  3. ROS之tf空间坐标变换完全详解

    本博文主要汇总了自己在使用ROS中tf坐标变换包时查找的一些参考资料和博客,包括了tf和部分tf2的使用,在此感谢本博文中出现的所有的博客链接! 参考资源: ROS官网详细介绍: http://wik ...

  4. MIT公开课18.06 Gilbert Strang 线性代数 笔记3 - 正定矩阵及其应用

    文章目录 第26讲:对称矩阵及正定性 对称矩阵 性质 描述 证明 谱定理,对称矩阵的分解 对称矩阵特征值的符号 正定性 定义 例子 第27讲:复数矩阵和快速傅里叶变换 复数矩阵运算 计算复向量的模 计 ...

  5. 仿射变换原理和其OpenCV-Python实现知识汇总

    ☞ ░ 老猿Python博文目录:https://blog.csdn.net/LaoYuanPython ░ 一.仿射变换概念和类型 图像几何变换又称为图像空间变换,是各种图像处理算法的基础.它是在不 ...

  6. 一般向量空间的基变换_从希尔伯特空间的角度看线性变换的一般思想和问题

    一般线性变换以及傅里叶变换,欧氏变换,仿射变换,余弦变换,小波变换,拉普拉斯变换,Z变换,希尔伯特变换等等这些所谓的变换太多了,这些到底搞得是什么?怎么像云像雾又像风呢?怎么才能彻底理解它们?它们究竟 ...

  7. 一般向量空间的基变换_MIT—线性代数笔记30 线性变换及对应矩阵

    第30讲 线性变换及对应矩阵 Linear transformations and their matrices 网易公开课​open.163.com 线性变换 Linear transformati ...

  8. 一般向量空间的基变换_线性代数的本质03 矩阵与线性变换

    03 矩阵与线性变换 [熟肉]线性代数的本质 - 03 - 矩阵与线性变换_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com 线性变换的概念以及它和矩阵的关系是非常 ...

  9. 线代[2]|对极易混淆概念的梳理—线性相关与线性无关、极大线性无关部分组与秩与基础解系、向量空间的基与维数

    原创首发于CSDN,转载请注明出处(CSDN:古希腊的汉密士),谢谢! 文章目录 一般形式的线性方程组 线性相关与线性无关 线性极大无关部分组与秩与基础解系 |齐次线性方程组的解 向量空间的基与维数 ...

最新文章

  1. 给妹子讲python-S01E23初识异常处理
  2. Java NIO系列教程(八) SocketChannel
  3. 财讯传媒集团首席战略官段永朝:AI等技术将带来认知重启
  4. java之hibernate之 cascade和inverse
  5. Visual Studio 2008 每日提示(三十二)
  6. MongoDB数据分布不均的解决方案
  7. 剑指 Offer 37. 序列化二叉树
  8. 吴恩达机器学习 Coursera 笔记(二) - 单变量线性回归...
  9. PHP 编写和使用web服务 第一节
  10. 数据库MySQL安装
  11. 关于vue-template-compiler 源码探究的资料
  12. android 记录崩溃日志
  13. 微软“黑历史”:一个活了 45 年的愚蠢 Bug!
  14. 头文件注释轻松搞—VS2013
  15. Android viewpager+fragment实现无限滚动,左右有前/后一页的部分,并fragment显示的内容是activity传过去的数据
  16. 辉芒微IO单片机FT60F111-RB
  17. 文档被外泄?如何有效管控文档拷贝行为
  18. 程序员要为了生活而工作,不要为了工作而生活。
  19. C# 在Windows系统下使用蓝牙进行数据通讯
  20. 亏损收窄的金融壹账通离盈利还有多远?

热门文章

  1. CSS 雪碧图及其优缺点
  2. Echarts使用geojson地理坐标地图地名label标签位置不居中调整的解决方案
  3. 弘辽科技:淘宝店铺标志怎么做?如何制作淘宝店标?
  4. Mapper层访问不到:...required a bean of type '....TBaseAuthMapper' that could not be found.
  5. SAP ABAP 函数组 SCMS_CONV 介绍:字符串转换
  6. 三点估算概念与计算公式
  7. DO-178C Standard
  8. 计算机软考中网络管理员,软考证书和职称的关系原来是这样~
  9. 图片怎么合成gif动图?操作步骤详解
  10. CAS中文乱码,登录报错