matlab非同秩矩阵相乘_线性代数精华——讲透矩阵的初等变换与矩阵的秩

这篇文章和大家聊聊矩阵的初等变换和矩阵的秩

矩阵的初等变换这个概念可能在很多人听来有些陌生,但其实我们早在初中的解多元方程组的时候就用过它。只不过在课本当中,这种方法叫做消元法。我们先来看一个课本里的例子:

904809844d5eead7effd0bee4ad432cf.png

假设我们要解这个方程,怎么做呢?

首先,我们把(1)式加到(2)式,把(4)式加到(3)式,把(1)式乘6加到(4)式可以得到:

53ba04d1cb4fc7e514aa9c9921430d78.png

我们再把(4)式减去(2)式乘5,可以解出x4=−3:

104f922ce797b1d364d35c26cd4d679f.png

我们把x4=−3带入,可以解出x1, x2, x3。

277a40d035c1bf8cdae0e255b1d740ab.png

因为消元之后,方程组的数量少于变量的数量,我们无法解出所有的变量。其中的x3可以取任何值。

上面这个计算的方法我们都非常熟悉,如果我们用一个矩阵来表示所有的次数,那么这个矩阵D可以写成:

d0cbf2c89693b43104175b5d628404da.png

那么,我们刚才消元的过程,其实就是对这个矩阵做初等变换。我们把这个过程总结一下,矩阵的初等变换操作包含以下三种:

  1. 对调两行
  2. 以数k,k≠0乘上某行的所有元素
  3. 以数k,k≠0乘上某行所有元素并加到另一行

以上的三种都是针对行为单位的,因此上面的三种变换也称为“行变换”。同样我们也可以对列做如上的三种操作,称为“列变换”。行变换和列变换结合就是矩阵的初等变换。

同样,我们可以对D这个矩阵使用刚才我们上述的初等变换操作,将它变成如下这个结果:

edfa29c9163106504804bb042855aec9.png

它就对应方程组:

7c7978e48459df21668f9d3588e73416.png

Dt矩阵是经过初等行变换的结果,我们还可以再对它进行列变换,将它变得更简单,我们只要交换第三和第三列,之后就可以通过初等列变换把第五列消除,之后它就变成了下面这个样子:

1189d053aafd82c2eedab3cdec4d2c36.png

我们用数据归纳法可以很容易证明,所有的m*n的矩阵经过一系列初等变换,都可以变成如下的形式:

02b02700e1e06e65d964b84e63057bb8.png

r就是最简矩阵当中非零行的行数,它也被称为矩阵的秩。我们把A矩阵的秩记作: R(A)

之前我们在介绍行列式的时候说过,行列式还存在多种性质。其中之一就是一个矩阵经过初等变换,它的行列式保持不变。我们又知道,如果行列式当中存在某一行或者某一列全部为0,那么它的行列式为0。

所以,我们可以得到,对于n阶矩阵A而言,如果它的秩R(A)

再根据我们前文当中有关可逆矩阵的定义,可以得到,可逆矩阵的秩就等于矩阵的阶数,不可逆矩阵的秩小于矩阵的阶数。所以,可逆矩阵又称为满秩矩阵,不可逆矩阵(奇异矩阵)又称为降秩矩阵。

之前我们在复习行列式以及逆矩阵的时候,总觉得少了些什么,现在有了矩阵的秩的概念之后,这些知识就能串起来了。

代码计算

同样,numpy当中也继承了计算矩阵秩的工具。我们可以很轻松的用一行代码算出矩阵的秩,这样我们在判断矩阵是否可逆的时候,就不需要通过行列式来判断了。因为矩阵秩的计算要比行列式的计算快得多。

import numpy as npnp.linalg.matrix_rank(a)
59bb0945ec73f540d6c3b2bbf4ea9a6c.png

有了矩阵秩的概念之后,我们后续的很多内容介绍起来都方便了许多,它也是矩阵领域当中非常重要的概念之一。

线性方程组的解

我们理解了矩阵的秩的概念之后,我们现学现用,看看它在线性方程组上的应用。

我们之前在介绍行列式的时候,曾经介绍过n元n个等式的方程组的解,可以用行列式表示。但是现实当中我们遇见的方程组并不一定是n元n等式的,我们推广到一般的情况来看。假设当下有一个n元m个等式的方程组:

25387252821bbb36f62a5c87ff3912d6.png

我们可以将它写成矩阵相乘的形式:Ax = b

ecc8c09c1daed29783a2d1498a926afe.png

我们利用系数矩阵A和增广矩阵B=(A,b)的秩,可以和方便地看出线性方程组是否有解。我们先来看结论:

  1. 当R(A) < R(B)时无解
  2. 当R(A) = R(B) = n时,有唯一解
  3. 当R(A) = R(B) < n时,有无数解

证明的过程也很简单,主要就是利用矩阵秩和最简矩阵的定义。

我们假设R(A)=r,并将B矩阵化简成最简形式,假设得到的结果是:

4699599ef52ce5f9267fe3fab72d69ad.png

(1) 显然,当R(A) < R(B)时,那么矩阵Bf中的dr+1 = 1,那么第r + 1行对应的方程0 = 1矛盾,所以方程无解。

(2) 如果R(A) = R(B) = r = n,那么矩阵Bf中的dr+1 = 0,并且 bij都不出现,所以我们可以直接写出方程组的解:

c821009aefe37618a143562613afeab2.png

此时,方程组有唯一解

(3) 如果R(A) = R(B) = r < n,则B中的dr+1=0,我们写出对应的解:

a13a6aedffcf35a5b4c005677294e7ce.png
4e4cdf719d3cef1423501a85ec16fee0.png

由于参数c1, c2, ... cn-r可以取任意值,所以方程有无数解。上面写出的解的形式即是线性方程组的通解

齐次线性方程组

如果我们将上面的线性方程组的常数项都置为0,就称为齐次线性方程组,如下:

bfa6092b17e90d6c9d4bfba7fbbba7c6.png

齐次方程组最大的特点就是当x=0时一定有解,称为方程组的零解。我们还通过增广矩阵来判断,写出来其实还是刚才一样的形式:

a5b0cd404c1773bbdc5f97d761b23254.png

和非齐次线性方程组不同的是,我们可以断定dr+1=0,如此一来就不存在无解的情况。这个时候我们要判断的就是方程组是否存在非零解,我们一样通过矩阵的秩来判断,判断的条件也很简单,如果R(A) = n,则不存在非零解,如果R(A) < n,则存在无数组非零解。

我们先写出R(A) = n的情况,这时候的矩阵Bf为:

f04fc20fd7ef565e3b468798b146d98e.png

也就是说:

27bab1c39780d3655a2219db5316005b.png
2eb0b14cb8711974df2378d2fd8cc578.png

当R(A) < n时方程组和非齐次方程组类似,唯一不同的是可以确定di=0 (i=1, 2, ...n),我们直接带入之前的通项公式,可以得到:

ca0afda031e8914455f602d504451e37.png

线性方程组的解的公式和计算本身其实并不重要。因为在实际的算法领域,用到的也不多。但是理解线性方程组对于理解后面的向量以及线性空间非常有帮助,文中的公式看着恐怖,但冷静下来真的去试着理解一下,会发现也就那么回事。


衷心希望大家学有收获,如果喜欢本文,请顺手给个关注吧~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手持巡检仪_专业的三防产品设计-电力巡检仪设计

我个人认为所有科技的发展都是建立在人们的需求而产生的。让人们更加方便快捷舒适。在电力巡检的问题上&#xff0c;为了减少值班员抄表和记录因此设计出这款电力巡检仪设计。用于记录设备的运行、检修、备用状态,可查询当天的漏检项目情况&#xff0c;确保点检内容无遗漏&…

thinkphp v5.0.11漏洞_ThinkPHP5丨远程代码执行漏洞动态分析

ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的&#xff0c;在保持出色的性能和至简代码的同时&#xff0c;也注重易用性。但是简洁易操作也会出现漏洞&#xff0c;之前ThinkPHP官方修复了一个严重的远程代码执行漏洞。这个漏洞的主要原因是由于框架对控制器名没有…

本地提交spark_Spark 数据本地化级别

​​RDD 源码大家可以看到源码中的第五条注释说明&#xff0c;翻译过来的大概意思是提供一系列的最佳计算位置。我之前一直不太清楚 spark 是如何内部实现的&#xff0c;今天就带领大家来看一看 spark 的本地数据化级别在任务执行中的演变过程。1 数据的本地化级别有哪些&#…

街舞中的rolling机器人_首家!爆点!奈雪の茶、蛙小侠..开业倒计时!街舞PK…这个六一就差你来围观了...

说起济南的各大shopping mall世茂广场绝对是最得人心的总能迅速集结当下最火爆的品牌各种线上线下活动也是搞得新颖又有趣五一的“刘看山”还没结束呢这就马不停蹄的要上新活动了前方预警⚠奈雪の茶等一大波新店又要入驻啦 还有 “奔跑吧爸爸”亲子活动、街舞大赛 ……统统都在…

简述isodata算法的原理_基于UWB技术的室内定位方法简述

1. UWB室内定位概述&#xff1a;UWB室内定位技术与传统通信技术有极大的差异&#xff0c;它不需要使用传统通信体制中的载波&#xff0c;而是通过发送和接收具有纳秒或纳秒级以下的极窄脉冲来传输数据&#xff0c;从而具有GHz量级的带宽。超宽带室内定位可用于各个领域的室内精…

slider获取点击 unity_Unity基础 | 70分钟带你轻松入门

Hello . 大家好今天给大家分享Unity3D的基础入门我是麦田这次录制的教程是面向零基础&#xff0c;想上手Unity的同学。所以就做了这一次大串讲。(只此一回&#xff0c;别无分号了。)时长1小时10分钟&#xff0c;我的建议是一口气看完。(因为我也是一口气讲完的)大家可以点击文末…

达梦数据库导入oracle数据_达梦数据库助力加速石油石化行业数字化转型升级

2020中国石油石化企业信息技术交流大会暨数字化转型、智能化发展高峰论坛于10月22日-23日在北京召开&#xff0c;武汉达梦数据库有限公司(简称达梦公司)作为国产数据库代表企业受邀参与此次活动&#xff0c;并以“国产数据库能源行业解决方案”为主题报告&#xff0c;为来宾介绍…

在lcd屏幕上窗口显示一个bitmap_SmartDrop——LED/LCD大屏内容投屏管理软件

产品简介SmartDrop是飞画推出的一款针对拼接大屏(LCD/LED)进行内容投屏管理的播控软件&#xff0c;支持LCD/LED两种应用环境&#xff0c;用户可以根据屏幕的使用场景进行选择安装LCD-Drop或LED-Drop。SmartDrop支持超高分辨率&#xff0c;显示窗口分辨率自定义,远程可视化控制&…

复杂电路简化经典例题_【中考物理】电路简化的10大原则和7大步骤

电路问题是初中物理比较难的知识&#xff0c;也是中考很重要的一部分。很多同学遇到电路类的题目&#xff0c;摆在面前的第一个问题就是不会简化电路图。今天给大家分享电路简化的10大原则和7大步骤&#xff0c;希望能够帮你解决这个难题&#xff01;电路简化的10大基本原则初中…

单关闭功能_广告弹窗关闭

相信现在大部分电脑都安装360安全卫士和搜狗拼音输入法&#xff0c;关于这两款软件各有吐槽&#xff0c;最讨厌的莫过于莫名奇妙的各种广告弹窗&#xff0c;让人不厌其烦。因为我们是免费&#xff0c;所以不要渴求太多。360安全卫士广告弹窗关闭办法1、打开360安全卫士点击右上…

忽视大小写函数_使用率低但功能强大的6个Excel函数公式应用技巧解读!

在Excel函数公式中&#xff0c;有部分函数的使用率是比较低的&#xff0c;但是其功能也是非常强大的。一、Median函数。功能&#xff1a;返回一组数的中值。中值就是一组数的中间数值&#xff0c;如果参数包含的数值是偶数&#xff0c;Median函数将返回位于中间两个值的平均值。…

创建路径_PS钢笔工具是建立路径的基本工具

PS“钢笔工具”是建立路径的基本工具&#xff0c;用来绘制任意形状的图形路径&#xff0c;钢笔工具通过设置锚点绘制形状路径。新建一个页面&#xff0c;选择钢笔工具&#xff0c;在页面上单击&#xff0c;建立路径的开始点&#xff0c;也就是路径的第一个锚点。再单击&#xf…

使用 保存文件_使用SaveFileDialog调用保存文件对话框

使用SaveFileDialog调用保存文件对话框【实例介绍】本实例使用SaveFileDialog对话框实现了保存文件的功能。运行程序&#xff0c; 保存文件&#xff0c;打开“保存文件”对话框(Windows中一般称为“另存为”对话框)&#xff0c;实现保存操作。【开发过程】(1) 创建一个Windows应…

js验证家庭住址_手摇充电电筒、多功能组合剪刀……官方清单建议上海家庭储备13种应急物资...

面对灾情或突发事件&#xff0c;第一时间自救、避险或撤离&#xff0c;可把损失和伤亡降到最低&#xff0c;因此&#xff0c;以家庭为单位进行应急物资储备尤为必要。12月8日&#xff0c;上海市应急管理局发布了《上海市家庭应急物资储备建议清单》&#xff0c;倡导家庭储备应急…

机器人搏击大赛冠军_机器人的江湖 谁主沉浮——2017格斗机器人大赛侧记

在2017世界机器人大会期间&#xff0c;格斗机器人大赛正如火如荼地进行着。 本报记者 李芃达摄狭路相逢勇者胜&#xff01;相对而行的两辆高速赛车重重地撞在一起……这不是《速度与激情》里的经典桥段&#xff0c;而是2017格斗机器人大赛中狂暴战车之间的巅峰对决。“哇&#…

mysql输出美式报表_Navicat for MySQL 如何预览报表

Navicat for MySQL 使用用户友好 GUI 报表创建工具创建各种不同类型的报表&#xff0c;设计发票、统计、邮寄标签及更多其他报表。输出报表到多种格式&#xff0c;如 text、PDF、Lotus、Excel、Graphic、Html 及更多。Navicat Report Viewer 可浏览由报表创建工具设计的报表&am…

mysql server_id作用_MySQL复制过程中server-id的理解

一. server-id做什么用的&#xff0c;你知道吗&#xff1f;1、 MySQL的同步的数据中是包含server-id的&#xff0c;用于标识该语句最初是从哪个server写入的&#xff0c;所以server-id一定要有的2、 每一个同步中的slave在master上都对应一个master线程&#xff0c;该线程就…

java如何解析cron成可视化_宅家30天,2万字节java高级工程师面试题解析,如何斩获阿里p7...

宅家里一个月&#xff0c;“闭关修炼”的你是不是正在为金三银四跳槽季发愁呢&#xff1f;小编今天说的这富含的15个互联网大厂Java高级工程师核心面试问题整理&#xff01;内容包括&#xff1a;kafka面试题及解析18道ZooKeeper面试题及解析28道Linux 面试真题及解析45道MySQL面…

java接口如何接受语音参数_Java 是如何优雅地实现接口数据校验的?

作者 | 无敌码农 责编 | 张文头图 | CSDN 下载自东方 IC来源 | 无敌码农(ID&#xff1a;jiangqiaodege)本篇文章给大家分享平时开发中总结的一点小技巧&#xff01;在工作中写过 Java 程序的朋友都知道&#xff0c;目前使用 Java 开发服务最主流的方式就是通过 Spring MVC 定义…

msp430单片机 温度计编程_MSP430系列与89C5l系列的比较

1、89C51单片机是8位单片机。其指令是采用的被称为“CISC”的复杂指令集&#xff0c;共具有111条指令。而MSP430单片机是16位的单片机&#xff0c;采用了精简指令集(RISC)结构&#xff0c;只有简洁的27条指令&#xff0c;大量的指令则是模拟指令&#xff0c;众多的寄存器以及片…