c++求矩阵的秩_离开解方程,矩阵它到底是个啥?

417f1765a8e78af740d4929c529f5b38.png

相信不少人像我一样,每次复习线代的时候,总是满怀信心的翻开课本准备大干一场,但是一个小时后你突然发现,这知识他不进脑子啊!渐渐的你越来越想问候矩阵创始人的家人,你越来越想知道,到底是谁,为了解个方程组竟然还要定义一个新概念!而且还有如此多的子概念,子子孙孙无穷匮也!那么我们不妨就浅析一下,这矩阵,除了解方程的工具,他到底是个什么玩意?

8f5bea238073177d33caed3c0fdb8f56.png

矩阵是运动与变换的描述

相信不少同学在大学开学第一课时,都听到过这样的一句话:“大学数学要用运动的眼光来研究”。听起来十分高大上,但真正做起来却不容易;现在我们思考一下,矩阵怎么用运动的眼光来看待呢?

我们不妨先来看这样一个问题:在一个二维空间里有( -1 ,2 )这样一个向量,我们都知道它可以被看作-1个(1,0)基向量与2个(0,1)基向量合成所得;那么现在我将(1,0)调整方向与大小变为向量(1,-2),同理将(0,1)变换成(3,0),会发生什么呢?显然,x轴方向变成了沿(1,-2)的,y轴则沿(3,0),同时整个坐标系的旋转与压缩也导致了(-1,2)的大小与方向的改变。

且新的向量为(-1+3*2,(-2)*(-1)+0),即(5,2)

现在我们回过头看一看刚才所发生的事,用一句话描述就是一个向量(-1,2)变换成了(5,2)这个新向量。用数学的语言描述就是

2e74e65478cde3095e460ee8e2fb1b1e.png

聪明如你肯定发现了,当我们把两个新的基向量写在一起时,写成了矩阵的形式,而且计算方式与矩阵的运算性质完全符合;这难道是巧合吗?当然不是,其实矩阵的每一列就代表了一个基向量,每一个基向量都代表了对原来正常坐标系的某一个基向量(比如(1,0))所做的变换而整个矩阵则代表了对整个空间的变换;也就是说,只要确定了一个矩阵,就确定了该坐标系变换的方法(旋转的角度,拉伸的倍数等),我们也就随之确定了坐标系下每个向量的变换后的新向量;

当然我们刚刚讨论的是一个平面上的情况(二维的),假如是(x,y,z),则是在三维空间下考虑问题,同理,在n维空间下,也是一样的,只不过我们比较难以直观想象了。

(如果还不明白,可以考虑高中学过的斜二测画图,本质上是一样的,如果把矩阵比作视角的话,那么我们使用单位矩阵的时候就是在用xy轴”正视“这个向量,而使用其他矩阵时,就是在用其他视角看这个向量;)

理解了这一概念后,我们再来看一看我们课上所学的知识;

一、矩阵的概念

由m*n个数组成的m行n列的矩形数表——>m维空间下的n组向量,并且描述了该空间在n种变换共同作用后的变换情况;

5f030814f71e17cc52f4cc98aa6f88d8.png

二、矩阵的分类

1.单位阵:我们都知道,任意一个矩阵乘以单位阵都不变,也就是说做单位阵这种变换,等于没变换,所以单位阵所描述的变换其实就是:由正交坐标系仍变换为正交坐标系,相当于什么变化也不做。(坐标系不变,所以向量也不会变)。比如我们以3阶单位阵为例,第一列代表的向量是(1,0,0)也就是x轴上的单位向量本身,第二列是(0,1,0)是y轴上的单位向量,第三列是(0,0,1)是z轴上的单位向量,在他们的共同作用下,坐标系显然不变;

2.方阵:我们不妨先从n阶行列式入手,考虑一个n阶单位阵变化成一个n阶方阵的过程,其实就是对所有的n个基向量都做了变幻的描述,从而全面的描述了该控件的变换;

三、矩阵的乘法

介绍矩阵乘法之前我们需要先理解矩阵的作用顺序这个概念,假设现有矩阵a和矩阵b相乘得到矩阵c,我们能猜到既然a和b都是对空间的变换,那么c也是对空间的一种变换,且是a和b共同作用下的。那么问题来了,我们如何知道空间是怎么变的呢?是先进行a变换再做b变换,还是先进行b变换在做a变换呢?

我先把答案告诉大家(如果大家自己推不出来,可以在评论区里问我):矩阵按从右到左的顺序对空间产生变化作用,什么意思呢?比如说有有矩阵a、b,则a*b是指先将空间以b的方式变换再以a的形式变换;

f01f7a711956496db5d28148dfad33c3.png

理解了作用顺序后,我们再来推导一下矩阵乘法公式

df271c0486fd1e48af4566715b4986d9.png

同时我们也能理解了为什么矩阵相乘一定要求矩阵a的列数n等于矩阵b的行数n:因为从右往左的顺序做变幻时,右侧的b的行数n确定了基向量是一个n维向量,所以a对b的基向量做变幻时,会要求每个方向都有一个向量与之相乘,所以a有n组向量,占了n列;

四、矩阵的逆

我们已知矩阵乘以矩阵的逆为单位阵,也就是说对正交坐标系先做一次变换,再做一次变换后它又变回了正交坐标系,打个比方,比如矩阵a的作用是使x轴逆时针转45度,那么矩阵a的逆的作用则是使x轴顺时针转45度。

至于为什么可逆矩阵一定是方阵,我们不妨先留一个小小的悬念,一会儿另行解答。

0e260dbda087f7f1681bdcbae3a1c6bf.png

五、矩阵的初等变换

理解了以上知识点,我想关于矩阵的初等变换这里就很好解释了,其实初等变换就是对空间变换实际操作的方法,比如某列乘以某个数就是拉伸或压缩基向量;

六、矩阵的秩

我们在高中的时候就学过,二维空间基向量不能共线,否则只能表示一条线上的向量,换句话说,就是一个二维面被压缩成了一维线。现在我们加上矩阵的知识,假如我们把(1,0)旋转45度再拉伸变成了(1,1),又把(0,1)旋转45度再拉伸变成了(2,2),那么新的基向量就共线了,我们可以做一个实验,拿这个矩阵乘以任意向量,结果所得向量均在y=x这条线上,即一个二维空间被降维打击了。

9a5a083cd3db8ecf8a7618db61b9a7cb.png

而我们可以发现该向量的秩恰好就为1,所以我们可以猜到,矩阵的秩,代表了一个n维空间,做了矩阵所代表的变换后,被降到的维数;

并且我们可以证明,只要|A|不等于零,则A就不会被降维,即A是满秩的;

我们不妨再来证明秩的以下性质

  1. r(A)=min{m,n}:假设行数m小于列数n,因为只有该空间被降维或不变才能得到秩,所以秩一定小于等于空间本身维度m;假设行数m大于列数n,我们设原空间基向量为a1,a2,a3...am.则矩阵A的第一列代表了对a1的变换,第二列对a2变......以此类推,最后还剩m-n个基向量没有变换,又因为最后的空间列数与A相同,所以新的空间丢失了m-n个维度,虽然有m行,但实际上最多只有n维,所以秩小于等于n;(想象三维空间丢失了z方向上的基向量就成了一个面了)
  2. r(A)=0则A=0:如果空间被降为成了一个点,则说明没有基向量,或基向量在任意维度都为0,所以A=0;
  3. 矩阵的非零子式最高阶数为该矩阵的秩:(这里的证明方法有一点抽象,我的证法有可能有瑕疵,大家可以在评论区与我讨论)假设一个n阶矩阵,有一个最高m阶的非零子式,那么这个m阶子式,必然代表一个m维的空间(因为子式不为零说明满秩了),而m维的空间是该n维空间的一个元素,所以当该n维空间降维时从n-1维、n-2维...最后到m维时,一定会有该m维空间使其不能被压缩了。就好比三维空间压到二维空间后,遇到了一个不能被压缩的长方形,则无论再怎么压缩,该空间都不能被压缩成一条线了。
  4. 初等变换不改变矩阵的秩:以一个面为例,不管怎么拉伸,旋转,翻折,我们得到的永远都还是一个面,也就是说,我们所做的初等变换,只是在该维度上的操作,不会改变维度数;(就好比我们日常接触的东西永远都是三维的,我们无法创造一个二维或者高维的物体,我们每天所做的事都有三维的限制)

七、n维向量的线性关系

735e841180183bd1a7b9be63f8c1856d.png

1)线性无关——即向量组中任意向量都不能被其他向量所替代

2)不符合线性无关则为线性相关;

先整理这么多,之后有机会还会再更新的!您的点赞与关注就是我的动力!

1fd09953026a3bbe763a2108700d7cb5.png
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值