05-转置-置换-向量空间R
一、置换矩阵
一个矩阵的行或者列交换,可以借助另外一个矩阵相乘来实现
首先是行交换:
$\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的更多相关文章
- (数据科学学习手札05)Python与R数据读入存出方式的总结与比较
在数据分析的过程中,外部数据的导入和数据的导出是非常关键的部分,而Python和R在这方面大同小异,且针对不同的包或模块,对应着不同的函数来完成这部分功能: Python 1.TXT文件 导入: 以某 ...
- MIT-线性代数公开课
本博客是学习MIT-线性代数笔记,Gilbert Strang大神讲的通俗易懂,感兴趣的可以观看视频 其中习题集请点击 01)方程组的几何解释 02)矩阵消元 03)乘法和逆矩阵 04)A的LU分解 ...
- R语言︱大数据集下运行内存管理
在实操时出现以下的问题: Error: cannot allocate vector of size 2.9GB 大神指导(http://bbs.pinggu.org/thread-3682816-1 ...
- (待续)C#语言中的动态数组(ArrayList)模拟常用页面置换算法(FIFO、LRU、Optimal)
目录 00 简介 01 算法概述 02 公用方法与变量解释 03 先进先出置换算法(FIFO) 04 最近最久未使用(LRU)算法 05 最佳置换算法(OPT) 00 简介 页面置换算法主要是记录内存 ...
- R语言入门 一些基本的操作
1 R的下载.安转 R有很多的版本,支持目前主流的操作系统MAC.Linux和WINDOWS系列.因为我个人是在WINDOWS下用R的,所以在这里将只介绍WINDOWS下R的下载&安装. 下载 ...
- 2020牛客暑期多校训练营 第二场 J Just Shuffle 置换 群论
LINK:Just Shuffle 比较怂群论 因为没怎么学过 置换也是刚理解. 这道题是 已知一个置换\(A\)求一个置换P 两个置换的关键为\(P^k=A\) 且k是一个大质数. 做法是李指导教我 ...
- R语言矩阵相关性计算及其可视化?
目录 1. 矩阵相关性计算方法 base::cor/cor.test psych::corr.test Hmisc::rcorr 其他工具 2. 相关性矩阵转化为两两相关 3. 可视化 corrplo ...
- A Recipe for Training Neural Networks [中文翻译, part 1]
最近拜读大神Karpathy的经验之谈 A Recipe for Training Neural Networks https://karpathy.github.io/2019/04/25/rec ...
- [Google Guava] 2.3-强大的集合工具类:java.util.Collections中未包含的集合工具
原文链接 译文链接 译者:沈义扬,校对:丁一 尚未完成: Queues, Tables工具类 任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法.G ...
随机推荐
- 实现Runable接口
步骤 定义一个实现Runable接口的类,在类中实现run()方法(线程执行事件的方法).创建一个上述类的对象:Thread t=new Thread(new MyThreadt.start());调 ...
- Linux小记 -- apt-get install build-essential和yum groupinstall "Development Tools"
Ubuntu的apt install build-essential 作用:配置Debian系统编译环境,就是下载安装支持编译Debian包的依赖/包,比如gcc等. 直接执行 #apt instal ...
- webpack插件之htmlWebpackPlugin
webpack插件之htmlWebpackPlugin webpack插件 自动化 htmlWebpackPlugin 由于webpack已经帮我们处理好js之间的依赖关系,现在我们可以忽略js的加 ...
- leetcode-easy-array-31 three sum
mycode 69.20% class Solution(object): def removeDuplicates(self, nums): """ :type nu ...
- leetcode-mid-others-150. Evaluate Reverse Polish Notation
mycode 42.30%. 注意:如果不考虑符号,-1//3=-1而不是等于0,因为是向下取整 class Solution(object): def evalRPN(self, tokens) ...
- VC CString,int,string,char*之间的转换
CString转string : CString strMfc = "test"; std::string strStr; strStr = strMfc.GetBuffer(); ...
- windows下eclipse打不开
报错找不到jre等东西 因为eclipse到不到javaw.exe 将其写入eclipse.ini即可 在eclipse.ini的前面加上 -vm D:\dev_tool\java\jdk1.7.0_ ...
- springboot 使用外置tomcat启动
pom.xml 如下 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=" ...
- 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_6 Mybatis的CRUD-保存操作的细节-获取保存数据的id
保存后得到id 默认查询出来的是0,因为没有插入就要得到最后的id值. insert语句跟在前面就可以获取到id了 新插入的这条数据就是51 order=after表示在insert语句后再去获取id ...
- nginx重要特性
反向代理负载均衡实现高并发 1.反向代理反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器:并将从服务器上得到的结果返回给 ...