一、置换矩阵

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

 首先是行交换:

$\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. HBase调优案例(三)——Spark访问HBase慢

    负载信息:RegionServer:3个 Region:5400多个 现象:在使用Spark对HBase进行scan操作时发现有些task执行比较慢 原因分析:查看Spark应用的executor日志 ...

  2. 自动轮播切换tab

    一个项目中需要用到类似的功能,自己手写一个轮播切换,不足之处见谅.代码如下 <!DOCTYPE html> <html lang="en"> <hea ...

  3. leetcode-easy-array-1 two sum

    mycode  33.91% class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: for i ...

  4. Git-Runoob:Git 安装配置

    ylbtech-Git-Runoob:Git 安装配置 1.返回顶部 1. Git 安装配置 在使用Git前我们需要先安装 Git.Git 目前支持 Linux/Unix.Solaris.Mac和 W ...

  5. Go开发[八]goroutine和channel

    进程和线程 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位. 一个进程可以创 ...

  6. Spring的应用上下文ApplicationContext

    HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes() ...

  7. Django-DRF组件学习-视图学习

    1.请求与响应 drf除了在数据序列化部分简写代码以外,还在视图中提供了简写操作.所以在django原有的django.views.View类基础上,drf封装了多个子类出来提供给我们使用. Djan ...

  8. Nginx/Nginx基础学习

    Nginx与node.js 一.Nginx与Node.js Nginx是一款轻量级的HTTP服务器,采用事件驱动的异步非阻塞处理方式框架,这让其具有极好的IO性能,时常用于服务端的反向代理和负载均衡. ...

  9. js if 判断的使用

    !DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> ...

  10. Vim文本编辑工具

    4文本编辑工具Vim Vim是vi的升级版,编辑文本时vi不会显示颜色而vim会显示颜色. 安装vim工具 #yum  install  –y  vim-enhanced Vim有三种模式:一般模式. ...