c++求矩阵的秩_Matlab:矩阵的秩,简化梯形矩阵和线性方程组
点击上方蓝字关注 无距书乡 获取持续更新
在开始今天的正式内容之前,先补充一个创建矩阵的方法——由向量组合成矩阵。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:矩阵的秩,简化梯形矩阵和线性方程组相关推荐
- 转置矩阵: 正交矩阵: 阶梯形矩阵 行简化阶梯形矩阵 行最简形矩阵 伴随矩阵的列排问题: 求二阶伴随矩阵简单例子
目录 转置矩阵: 正交矩阵: 阶梯形矩阵 行简化阶梯形矩阵 行最简形矩阵
- 二元函数对xy同时求导_让向量、矩阵和张量的求导更简洁些吧
本文是我在阅读Erik Learned-Miller的<Vector, Matrix, and Tensor Derivatives>时的记录,点此下载. 本文的主要内容是帮助你学习如何进 ...
- 2015多校10 1006.CRB and Puzzle HDU5411(邻接矩阵求k长路条数,矩阵快速幂
题意:有若干字符,现在要把它们连成一个字符串,每种字符后面只能接特定种类的字符,现在询问能连接出的长度小于等于m的字符串有多少种. 思路:我们可以把这个转移关系看成一个图,如果字符a后面可以接b,那么 ...
- Java黑皮书课后题第8章:*8.2(求矩阵对角线元素的和)使用下面的方法头编写一个方法,求n*n的double类型矩阵中主对角线上所有数字的和。编写一个程序,读取一个4*4的矩阵,显示主对角线和
*8.2(求矩阵对角线元素的和)使用下面的方法头编写一个方法,求n*n的double类型矩阵中主对角线上所有数字的和.编写一个程序,读取一个4*4的矩阵,显示主对角线和 题目 题目描述与运行示例 破题 ...
- C语言学习之求一个3X3的整型矩阵对角线元素之和。
求一个3X3的整型矩阵对角线元素之和. int main(){int i,j,sum1=0,sum2=0; //定义 int a[3][3]; //定义数组 //给数组元素赋值 for(i=0;i&l ...
- C语言学习之求一个3×3的整型矩阵对角线元素之和
求一个3×3的整型矩阵对角线元素之和 一条对角线 #include <stdio.h> void main(){int a[3][3],i,j,s,s2;printf("请输入9 ...
- 求一个3*3的整形矩阵对角线元素之和
/*求一个3*3的整形矩阵对角线元素之和*/#include <stdio.h>int main() {int a[3][3],i,j,sum = 0;printf("请输入整数 ...
- matlab 解方程组 矩阵,用MATLAB计算矩阵和解线性方程组.ppt
用MATLAB计算矩阵和解线性方程组.ppt 第五章 矩阵与行列式 §5.6 用MATLAB计算 矩阵与行列式 用MATLAB计算矩阵与行列式 行列式的求值 矩阵的基本运算 矩阵的加.减 数与矩阵相乘 ...
- matlab 病态方程组,数值分析(Hilbert矩阵)病态线性方程组的求解Matlab程序
(Hilbert 矩阵)病态线性方程组的求解 理论分析表明,数值求解病态线性方程组很困难.考虑求解如下的线性方程组的求解Hx = b ,期中H 是Hilbert 矩阵,()ij n n H h ?=, ...
最新文章
- 演进式数据库开发技术的障碍
- pyqt5 子线程更新ui
- 从CES 2017看今年智能汽车发展趋势之一:车联网有望率先实现
- oracle 创建表空间 pcincrease,oracle建表空间 各种语句
- 数学--数论--HDU-2698 Maximum Multiple(规律)
- hive中如何把13位转化为时间_重要知识点收藏 | Hive常用函数大全
- linux 多核线程 调度,通过轻型线程提高多核设备中的Linux实时性能
- 漫漫长路十多小时,谁是机上WiFi的“业界良心”?
- bzoj1179[Apio2009]Atm
- 歌曲只需要伴奏,怎么消去歌声?
- antd table input 失焦的问题
- github-production-release Git-2.28.0-64-bit
- maven报错one of its dependencies could not be resolved
- aruba无线ap认证服务器,【图片】Aruba家用无线控制器无线AP+AC方案分析选择【aruba吧】_百度贴吧...
- php 手机swf播放器,php获取优酷土豆页面中视频swf播放器地址_PHP教程
- 【2022 CCF BDCI 文心大模型创意项目】DIY绘本
- Ubuntu16桌面版安装realsense SDK
- 简单入门排序算法(直接插入排序,折半插入排序,希尔排序,冒泡排序,堆排序,归并排序)
- HDU——1013(字符串+数学)Digital Roots
- (4.1.40.5)Android手势检测GestureDecetor详解
热门文章
- 报错后返回输入参数的界面
- B站爱情怀,投资者只看利益
- 在内地城区经济发展中冒头,长沙雨花是如何做到的?
- python合并csv文件_PYTHON合并CSV文件的实践
- kali启动cobaltstrike_Cobalt Strike MetaSploit 联动
- php编译成二进制文件_JVM字节码文件概述
- java中的图形界面编辑界面_第58节:Java中的图形界面编程-GUI
- 计算机的分类及组合,第六章:组合数据类型
- 计算机指定共享用户,局域网内共享文件夹给指定计算机
- Mysql基础--常见的表的约束介绍(一)