点击上方蓝字关注 无距书乡 获取持续更新

在开始今天的正式内容之前,先补充一个创建矩阵的方法——由向量组合成矩阵。A=[1;2;3],B=A+3,C=B+3,A, B, C 均为列向量,矩阵D由向量A, B,C 构成,D=[A B C],则D是一个3x3的矩阵。示例如下:

矩阵的秩

矩阵的秩是矩阵中线性无关的行向量的数目。在matlab中求矩阵的秩用rank()命令,如:求前述矩阵D的秩,通过观察的方法,矩阵的第三行减去第二行后都为1,第二行减去第一行后都为1。此时,矩阵的第二行和第三行都为1,两行线性相关可以消除其中一行,观察可知矩阵的的秩为2,下面用matlab 验证一下。示例如下:

下面我们来随机生成一个矩阵E并求rank(E)。示例如下:

矩阵E的秩为5,说明矩阵E的各行均线性无关。

下面我们对矩阵E做一个简单的改造,将矩阵E的第五行换成第一行和第二行的和,此时矩阵E的第五行就可以用第一行和第二行线性表示了,即第五行可以通过行变换化为全零,此时rank(E)应该等于4。在matlab中验证一下:

简化梯形矩阵

在笔算求矩阵的秩时,通常都会对矩阵做梯形简化,方便观察矩阵的秩,在解线性方程组时也会做这样的简化。matlab中使用rref()命令来获得简化梯形矩阵。示例如下:

通过简化后的梯形矩阵,很容易就能观察到矩阵D的秩为2。

再来看看矩阵E,示例如下:

通过简化后的梯形矩阵,很容易就能观察到矩阵E的秩为4。此处默认将非零行的第一个非零元素化为1,所以后面出现了实数。

线性方程组

有了前面内容的铺垫,现在可以很方便的求解线性方程组的解了,并观察解的性质。给定如下方程组:

将方程组的系数矩阵记作M, 等式右边的向量记作b。则:

看看系数矩阵M的秩:

rank(M)=2,满秩,说明方程组有唯一解。通过消元法,可以很容易解得x1=2,x2=5,这个在中学就学习过。

这里从线性代数的角度来求解这个方程组,一是Cramer 法则求解,二是高斯消元法,分述如下:

1. Cramer 法则:

首先计算系数矩阵的行列式detM;再用向量b替换M的第一列,并计算其行列式detM1,则 x1=detM1/detM; 同理,用b替换M的第二列,计算detM2,则 x2=detM2/detM。下面,在matlab中完成上述计算过程并验证结果。

如上图所示,x1=2,x2=5,结果与笔算一样。这里举例用了二元方程组,对于变量个数多余2的时候,matlab的简便性就更突出了。

2. 高斯消元法

高斯消元法是将系数矩阵M和列向量b组合在一起,做行变换得到简化梯形矩阵,再求解。仍然用上面的方程组做实验:

令:Mb=[M b]

经过梯形简化后,方程组变为如下形式:

一眼就能观察出来,x1=2,x2=5。比高斯消元法还要简单。

再补充一个三元线性方程组:

系数矩阵仍记作M,等式右边的向量记作b。

先计算rank(M):

rank(M)=3,满秩,方程组有唯一解。

先用Cramer 法则求解:

计算各个行列式的值:

计算x1,x2,x3的值:

再看看高斯消元法求解:

经过梯形简化后,方程组变为如下形式:

可以很方便的得到 x1=8,x2=15,x3=6。

解线性方程组是科学计算中的一个很重要很基本的部分,除了上面介绍的方法,关于线性方程组的解法还有很多种,后面会陆续介绍。对于那些不是线性的方程组,在经过简化后,也可以化作线性方程组来求解。所以,线性方程组的解法是科学计算的一个基石。

这么简单实用的工具,不来用一下吗!

长按识别二维码关注我

点个赞,携手共进

回复“ishare”加入社区

c++求矩阵的秩_Matlab:矩阵的秩,简化梯形矩阵和线性方程组相关推荐

  1. 转置矩阵: 正交矩阵: 阶梯形矩阵 行简化阶梯形矩阵 行最简形矩阵 伴随矩阵的列排问题: 求二阶伴随矩阵简单例子

    目录 转置矩阵: 正交矩阵: 阶梯形矩阵 行简化阶梯形矩阵 行最简形矩阵

  2. 二元函数对xy同时求导_让向量、矩阵和张量的求导更简洁些吧

    本文是我在阅读Erik Learned-Miller的<Vector, Matrix, and Tensor Derivatives>时的记录,点此下载. 本文的主要内容是帮助你学习如何进 ...

  3. 2015多校10 1006.CRB and Puzzle HDU5411(邻接矩阵求k长路条数,矩阵快速幂

    题意:有若干字符,现在要把它们连成一个字符串,每种字符后面只能接特定种类的字符,现在询问能连接出的长度小于等于m的字符串有多少种. 思路:我们可以把这个转移关系看成一个图,如果字符a后面可以接b,那么 ...

  4. Java黑皮书课后题第8章:*8.2(求矩阵对角线元素的和)使用下面的方法头编写一个方法,求n*n的double类型矩阵中主对角线上所有数字的和。编写一个程序,读取一个4*4的矩阵,显示主对角线和

    *8.2(求矩阵对角线元素的和)使用下面的方法头编写一个方法,求n*n的double类型矩阵中主对角线上所有数字的和.编写一个程序,读取一个4*4的矩阵,显示主对角线和 题目 题目描述与运行示例 破题 ...

  5. C语言学习之求一个3X3的整型矩阵对角线元素之和。

    求一个3X3的整型矩阵对角线元素之和. int main(){int i,j,sum1=0,sum2=0; //定义 int a[3][3]; //定义数组 //给数组元素赋值 for(i=0;i&l ...

  6. C语言学习之求一个3×3的整型矩阵对角线元素之和

    求一个3×3的整型矩阵对角线元素之和 一条对角线 #include <stdio.h> void main(){int a[3][3],i,j,s,s2;printf("请输入9 ...

  7. 求一个3*3的整形矩阵对角线元素之和

    /*求一个3*3的整形矩阵对角线元素之和*/#include <stdio.h>int main() {int a[3][3],i,j,sum = 0;printf("请输入整数 ...

  8. matlab 解方程组 矩阵,用MATLAB计算矩阵和解线性方程组.ppt

    用MATLAB计算矩阵和解线性方程组.ppt 第五章 矩阵与行列式 §5.6 用MATLAB计算 矩阵与行列式 用MATLAB计算矩阵与行列式 行列式的求值 矩阵的基本运算 矩阵的加.减 数与矩阵相乘 ...

  9. matlab 病态方程组,数值分析(Hilbert矩阵)病态线性方程组的求解Matlab程序

    (Hilbert 矩阵)病态线性方程组的求解 理论分析表明,数值求解病态线性方程组很困难.考虑求解如下的线性方程组的求解Hx = b ,期中H 是Hilbert 矩阵,()ij n n H h ?=, ...

最新文章

  1. 演进式数据库开发技术的障碍
  2. pyqt5 子线程更新ui
  3. 从CES 2017看今年智能汽车发展趋势之一:车联网有望率先实现
  4. oracle 创建表空间 pcincrease,oracle建表空间 各种语句
  5. 数学--数论--HDU-2698 Maximum Multiple(规律)
  6. hive中如何把13位转化为时间_重要知识点收藏 | Hive常用函数大全
  7. linux 多核线程 调度,通过轻型线程提高多核设备中的Linux实时性能
  8. 漫漫长路十多小时,谁是机上WiFi的“业界良心”?
  9. bzoj1179[Apio2009]Atm
  10. 歌曲只需要伴奏,怎么消去歌声?
  11. antd table input 失焦的问题
  12. github-production-release Git-2.28.0-64-bit
  13. maven报错one of its dependencies could not be resolved
  14. aruba无线ap认证服务器,【图片】Aruba家用无线控制器无线AP+AC方案分析选择【aruba吧】_百度贴吧...
  15. php 手机swf播放器,php获取优酷土豆页面中视频swf播放器地址_PHP教程
  16. 【2022 CCF BDCI 文心大模型创意项目】DIY绘本
  17. Ubuntu16桌面版安装realsense SDK
  18. 简单入门排序算法(直接插入排序,折半插入排序,希尔排序,冒泡排序,堆排序,归并排序)
  19. HDU——1013(字符串+数学)Digital Roots
  20. (4.1.40.5)Android手势检测GestureDecetor详解

热门文章

  1. 报错后返回输入参数的界面
  2. B站爱情怀,投资者只看利益
  3. 在内地城区经济发展中冒头,长沙雨花是如何做到的?
  4. python合并csv文件_PYTHON合并CSV文件的实践
  5. kali启动cobaltstrike_Cobalt Strike MetaSploit 联动
  6. php编译成二进制文件_JVM字节码文件概述
  7. java中的图形界面编辑界面_第58节:Java中的图形界面编程-GUI
  8. 计算机的分类及组合,第六章:组合数据类型
  9. 计算机指定共享用户,局域网内共享文件夹给指定计算机
  10. Mysql基础--常见的表的约束介绍(一)