一、置换矩阵

 一个矩阵的行或者列交换,可以借助另外一个矩阵相乘来实现

 首先是行交换:

$\underbrace{\left[\begin{array}{ccc}{1} & {1} & {1} \\ {2} & {2} & {2} \\ {3} & {3} & {3}\end{array}\right]}_{A} \stackrel{S_{12}}{\rightarrow} \underbrace{\left[\begin{array}{ccc}{2} & {2} & {2} \\ {1} & {1} & {1} \\ {3} & {3} & {3}\end{array}\right]}_{A_{2}}$

也就是矩阵的第一行和第二行进行了互换

  对于$A_2$的第一行,相当于从$A$中拿出了0个第一行,1个第二行,0个第三行进行加和

  对于$A_2$的第二行,相当于从$A$中拿出了1个第一行,0个第二行,0个第三行进行加和

  对于$A_2$的第三行,相当于从$A$中拿出了0个第一行,0个第二行,1个第三行进行加和

  之前我们讲过,行向量乘以一个矩阵,结果等于矩阵的每行的线性组合

  上面的$P_{12}$称为行置换矩阵。可以看出置换矩阵是行重新排列了的单位矩阵,它的一个特性是:$\mathrm{P}^{-1}=\mathrm{P}^{\mathrm{T}}$

 列交换与行交换类似,但是向量变为右变列向量(左行右列就是这个意思)

$\underbrace{\left[\begin{array}{lll}{1} & {2} & {3} \\ {1} & {2} & {3} \\ {1} & {2} & {3}\end{array}\right]}_{A} \stackrel{C_{12}}{\longrightarrow} \underbrace{\left[\begin{array}{ccc}{2} & {1} & {3} \\ {2} & {1} & {3} \\ {2} & {1} & {3}\end{array}\right]}_{A_{2}}$

也就是矩阵的第一列和第二列进行了互换

  对于$A_2$的第一列,相当于从$A$中拿出了0个第一列,1个第二列,0个第三列进行加和

  对于$A_2$的第二列,相当于从$A$中拿出了1个第一列,0个第二列,0个第三列进行加和

  对于$A_2$的第三列,相当于从$A$中拿出了0个第一列,0个第二列,1个第三列进行加和

  之前我们已经讲过:矩阵乘以一个列向量,得到一个列向量-也就是原矩阵得各列得线性组合

  上面得$C_{12}$称为列置换矩阵。注意列置换矩阵的结果,是按照列构成的

 总结:置换矩阵就是行或者列重新排列了的单位矩阵,置换矩阵可以用在消元过程中防止主元为0

二、转置矩阵

 即原始矩阵得行变成列,列变成行,用$A^T$表示:

$\left[\begin{array}{ll}{1} & {1} \\ {4} & {5} \\ {0} & {3}\end{array}\right]$的转置是$\left[\begin{array}{lll}{1} & {4} & {0} \\ {1} & {5} & {3}\end{array}\right]$

 注:一个矩阵与转置矩阵相乘可以得到对称矩阵,证明如下

 $(R^TR)^T = R^T(R^T)^T=R^TR$,所以一个矩阵$R^TR$的转置与自身相等,那么他就是对称的

 

三、向量空间

 向量有两个最基本的运算:相加$v_a + v_b$和数乘$num * v$

 $R^2$是个二维的向量空间,$R^3$是个三维的向量空间,是所有三维向量组成的向量空间,同理$R^n$是所有$n$维向量组成的向量空间

 所有向量空间必须包含0向量

 我们从$R^2$出发,取二维坐标系的第一象限,那么该区域是向量空间吗?显然不是,因为该区域的向量乘以一个负数的话就跑出该区域空间了,不在该区域内了,所以第一象限显然不是一个向量空间

 那么既然第一象限不是一个向量空间,$R^2$向量空间内是否存在其他向量空间呢(其实也叫向量子空间)?当然存在,如$R^2$向量空间内过原点的某条直线

  由于该直线过原点,所以该直线上的任意一个向量进行数乘或者该直线上的任意向量进行相加,结果仍然落在该直线上,所以该直线就是$R^2$向量空间的子空间

  但要注意并不是所有直线都是$R^2$向量空间的子空间,比如某条直线如果不过原点,那么该直线上的向量数乘0之后结果为0向量,0向量则不在该直线上,所以该不过原点的直线不是$R^2$向量空间的子空间

 既然讲了$R^2$向量空间,那么其子空间有哪些呢?

  a)其$R^2$本身,即整个$R^2$向量空间

  b)直线:确切的说是穿过0点的直线

  c)点:即0点,通常记为$Z$

 同理,$R^3$向量空间,那么其子空间有哪些呢?

  a)其$R^3$本身,即整个$R^3$向量空间

  b)平面:确切的说是穿过0点的平面

  c)直线:确切的说是穿过0点的直线

  d)点:即0点,通常记为$Z$

 下面我们来看看矩阵是如何构成子空间的,也就是我们从一个矩阵构造出子空间:

  1)通过列向量来构造,如

$A=\left[\begin{array}{ll}{1} & {3} \\ {2} & {3} \\ {4} & {1}\end{array}\right]$各列属于$R^3$

我们想用其各列来构成$R^3$的子空间:方法就是矩阵各列的线性组合,记作$C(A)$,C代表列空间

针对上面的矩阵$A$,其列空间就是穿过各列和原点的平面

05-转置-置换-向量空间R的更多相关文章

  1. (数据科学学习手札05)Python与R数据读入存出方式的总结与比较

    在数据分析的过程中,外部数据的导入和数据的导出是非常关键的部分,而Python和R在这方面大同小异,且针对不同的包或模块,对应着不同的函数来完成这部分功能: Python 1.TXT文件 导入: 以某 ...

  2. MIT-线性代数公开课

    本博客是学习MIT-线性代数笔记,Gilbert Strang大神讲的通俗易懂,感兴趣的可以观看视频 其中习题集请点击 01)方程组的几何解释 02)矩阵消元 03)乘法和逆矩阵 04)A的LU分解 ...

  3. R语言︱大数据集下运行内存管理

    在实操时出现以下的问题: Error: cannot allocate vector of size 2.9GB 大神指导(http://bbs.pinggu.org/thread-3682816-1 ...

  4. (待续)C#语言中的动态数组(ArrayList)模拟常用页面置换算法(FIFO、LRU、Optimal)

    目录 00 简介 01 算法概述 02 公用方法与变量解释 03 先进先出置换算法(FIFO) 04 最近最久未使用(LRU)算法 05 最佳置换算法(OPT) 00 简介 页面置换算法主要是记录内存 ...

  5. R语言入门 一些基本的操作

    1 R的下载.安转 R有很多的版本,支持目前主流的操作系统MAC.Linux和WINDOWS系列.因为我个人是在WINDOWS下用R的,所以在这里将只介绍WINDOWS下R的下载&安装. 下载 ...

  6. 2020牛客暑期多校训练营 第二场 J Just Shuffle 置换 群论

    LINK:Just Shuffle 比较怂群论 因为没怎么学过 置换也是刚理解. 这道题是 已知一个置换\(A\)求一个置换P 两个置换的关键为\(P^k=A\) 且k是一个大质数. 做法是李指导教我 ...

  7. R语言矩阵相关性计算及其可视化?

    目录 1. 矩阵相关性计算方法 base::cor/cor.test psych::corr.test Hmisc::rcorr 其他工具 2. 相关性矩阵转化为两两相关 3. 可视化 corrplo ...

  8. A Recipe for Training Neural Networks [中文翻译, part 1]

    最近拜读大神Karpathy的经验之谈 A Recipe for Training Neural Networks  https://karpathy.github.io/2019/04/25/rec ...

  9. [Google Guava] 2.3-强大的集合工具类:java.util.Collections中未包含的集合工具

    原文链接 译文链接 译者:沈义扬,校对:丁一 尚未完成: Queues, Tables工具类 任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法.G ...

随机推荐

  1. CodeChef---- February Challenge 2018----Chef and odd queries(复杂度分块计算)

    链接    https://www.codechef.com/FEB18/problems/CHANOQ/ Chef and odd queries Problem Code: CHANOQ Chef ...

  2. 深入理解php的输出缓冲区(output buffer)

    这篇文章是翻译自Julien Pauli的博客文章PHP output buffer in deep,Julien是PHP源码的资深开发和维护人员.这篇文章从多个方面讲解了PHP中的输出缓冲区以及怎么 ...

  3. How to Create a Basic Plugin 如何写一个基础的jQuery插件

    How to Create a Basic Plugin Sometimes you want to make a piece of functionality available throughou ...

  4. solr的访问权限管理及ubuntu下iptables的设置

    Apache Solr 是一个开源的搜索服务器,该平台默认允许匿名访问,攻击者可读取平台中各类敏感信息.之前考虑过增加账号密码访问,但是没有搞定,所以采用了曲线救国的方式,设置solr服务器只允许部分 ...

  5. python 调用c++类方法(1)

    myTest.cpp: #include<iostream> #include<vector> class MyTest { public: MyTest(); ~MyTest ...

  6. Eclipse与Tomcat

    新进一个Web项目,有些小坎坷,于是引发了对于Eclipse和Tomcat的配置关系的思考. 首先提及一点当年的观点:Tomcat是一个容器,所有的功能都是以插件的形式放入其中:比如tomcat就是o ...

  7. ubuntu16.04 卸载及安装MySQL

    以MySQL- 5.7.18为例: sudo apt-get autoremove --purge mysql-server-5.7 #sudo apt-get remove mysql-server ...

  8. 将Unix时间戳转换为Date、Json属性动态生成反序列化、序列化指定属性

    实体类 public class Test { [JsonIgnore] public string GetDate { get { return GetTime.ToString("yyy ...

  9. linux下搭建mysql数据库

    linux下搭建mysql数据库 1.下载mysql: http://dev.mysql.com/downloads/mysql/5.6.html#downloads wget http://dev. ...

  10. oracle数据库表空间创建&导入&导出

    1.表空间创建 --删除表空间 drop tablespace EVPBDMGIS including contents and datafiles; --删除用户 drop user EVPBDMG ...