zoukankan      html  css  js  c++  java
  • 线性变换的本质


    线性变换就是矩阵的变换,而任何矩阵的变换可以理解为 一个正交变换+伸缩变换+另一个正交变换。(正交变换可以暂时理解为 不改变大小以及正交性的旋转/反射 等变换)A*P = y*P ,y就是特征值,P是特征向量,矩阵A做的事情无非是把P沿其P的方向拉长/缩短了一点(而不是毫无规律的多维变换)。y描述沿着这个方向上拉伸的比例

    对于满秩的n*n方阵,做特征值变换,非满秩的矩阵,做奇异值变换,差别在于前者是个对角阵,后者形成对角阵和零矩阵合成的矩阵。

    下面是更直观的例子(转自知乎https://www.zhihu.com/question/21082351):

    1. 平面内引入直角坐标系之后,二维空间内所有的向量都可以用两个基向量i=(1,0)和j=(0,1)的线性组合来表示,例如a=(4,6),可以表示为a=4i+6j
    2. 但是也可以由i=(2,0)和j=(0,2)两个向量来表示,例如a=2i+3j
    3. 还可以由i=(1,1)和j=(1,-1)来表示,例如a=5i-1j
    4. 或者由i=(1,0)和j=(1,-1)表示,例如a=10i-6j
    5. 在1的基础上,我们还可以将a表示为i=(1,0),j=(0,1),k=(1,1)三个向量的线性组合,也就是a=4i+6j+0k或者a=0i+2j+4k或者a=2i+4j+2k等等等等我举不完了。这其中k=i+j

    通过上面的举例我们可以总结出几条。

    1. 由5点到4点,将多余的基向量k去掉,得到最大线性无关向量组
    2. 由4点到3点,将两个基向量的夹角变成直角,实现正交化
    3. 由3点到2点,将构成正交的两个基向量旋转,使其与坐标轴重合,实现对角化
    4. 由2点到1点,通过伸缩将两个基向量的长度变成单位长度,实现规范化

    通过上面的几个步骤,我们可以看出,任何一组向量构成的坐标系,都可以通过化简,正交,对角,规范的过程,将任何乱七八糟莫名其妙的坐标系变换成笛卡尔坐标系。那这么做有什么用呢?到这里我开了一下脑洞:
    假如说,平面内有两个椭圆,将直角坐标系的原点放在一个椭圆的长轴和短轴交点处,这样就可以得到这个椭圆的标准方程,就是高中课本上那个。由于这两个椭圆的位置相对,这样一来另一个椭圆的位置也就定下来了,可惜很难看,长得很歪,很难用方程表示。这时就可以以这个椭圆为原点再建立一个坐标系,并且在这个坐标系下用标准方程表示出来,这样两个椭圆都有了方程来表示,问题就化简为了两个坐标系之间的关系,这时再用矩阵来运算就好了。可惜这里不能画矩阵,关于矩阵的好多问题都不能解释。

  • 相关阅读:
    re.sub函数的深入了解
    xpath
    改变评分查询
    Boolean Query
    固定分数查询
    Unicode编码的原型
    java中基本类型占用字节数
    Java Socket网络编程的经典例子(转)
    (转)工厂模式
    (转)java垃圾回收机制
  • 原文地址:https://www.cnblogs.com/marszhw/p/5972871.html
Copyright © 2011-2022 走看看