求解矩阵的秩相关算法(C语言)

2023-11-12

矩阵的秩

在线性代数中,一个矩阵A的列秩是A的线性独立的纵列的极大数,通常表示为r(A),rk(A)或rank A。一个矩阵A的列秩是A的线性独立的纵列的极大数目。类似地,行秩是A的线性无关的横行的极大数目。即如果把矩阵看成一个个行向量或者列向量,秩就是这些行向量或者列向量的秩,也就是极大无关组中所含向量的个数。

相关定理

定理:矩阵的行秩,列秩,秩都相等。
定理:初等变换不改变矩阵的秩。
定理:如果A可逆,则r(AB)=r(B),r(BA)=r(B)。
定理:矩阵的乘积的秩Rab<=min{Ra,Rb};
引理:设矩阵A=(aij)sxn的列秩等于A的列数n,则A的列秩,秩都等于n。
当r(A)<=n-2时,最高阶非零子式的阶数<=n-2,任何n-1阶子式均为零,而伴随阵中的各元素就是n-1阶子式再加上个正负号,所以伴随阵为0矩阵。
当r(A)<=n-1时,最高阶非零子式的阶数<=n-1,所以n-1阶子式有可能不为零,所以伴随阵有可能非零(等号成立时伴随阵必为非零)。

代码块

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define N 5    //表示行数
#define M 9    //表示列数
void main()
{
	float a[N][M]={{0,4,5,0,0,1,1,1,0},{-5,0,2,0,1,0,1,0,3},{7,2,0,0,-4,0,4,1,0},{-3,1,0,0,0,0,0,0,1},{2,-3,0,0,3,1,0,4,0}};
    int i,j,k;
	float temp;  
	int r=0,d=0; //r表示秩,d表示当前正在哪一行。
	for(i=0;i<M;i++)
	{
		k=d;                            /*a[i][i] a[i+1][i] ... a[n][i]中绝对值最大的行位置*/
		for(j=d+1;j<N;j++)
			if(fabs(a[k][i])<fabs(a[j][i]))
				k=j;	
		if(k!=d)                     /*交换第i行和第k行,行列式该变号*/
		{
			for(j=i;j<M;j++)
			{
				temp=a[d][j];
			    a[d][j]=a[k][j];
		 	    a[k][j]=temp;
			}
		}
		if(a[d][i]==0)            /*当a[i][i]为零是时,行列式为零*/     
		{ 
			continue;
		}
		else
		{
			r=r+1;
			for(j=0;j<N;j++)
			{
				if(j!=d)
				{
					temp=-1*a[j][i]/a[d][i];
					for(k=i;k<M;k++)
						a[j][k]=a[j][k]+temp*a[d][k];
				 }
			 }
			temp=a[d][i];
			for(j=i;j<M;j++)
				a[d][j]=a[d][j]/temp;
		}
		d=d+1;
		if(d>=N)
			break;
	}
 	printf("矩阵行的最简式为:\n");
	for(i=0;i<N;i++)
	{
		for(j=0;j<M;j++)
			printf("%.4f\t",a[i][j]);
		printf("\n");
	}
	printf("\n矩阵的秩R(A)=%d\n",r);
}


	




注:请在C语言编译环境下运行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

求解矩阵的秩相关算法(C语言) 的相关文章

随机推荐

  • 图像质量评价指标及MATLAB程序

    指标名称 RMSE 针对一个volume的程序 M 230 行数 N 140 列数 P 11 切片数 计算RMSE volume P origin vector p P recon vector P recon MNP M N P nume
  • 小美的外卖订单编号---牛客周赛 Round 11

    include
  • 职场新人,如何提升自身竞争力?

    在当前就业形势下 如何提高应届生在职场中的竞争力 具有哪些有效的方法和策略可供选择 这是一个备受关注的热点话题 哪些方面会对应届生的职场发展起到关键的推动和支撑作用呢 欢迎大家积极分享你们是如何提升自己的职场竞争力 给即将步入社会的同学一些
  • stm32f103&gd32的usb虚拟串口,打印类printer组合设备

    stm32f103 gd32的usb虚拟串口 打印类printer组合设备 TOC stm32f103 gd32的usb虚拟串口 打印类printer组合设备 由于gd32和stm32f10x系列库和usb库都可以兼任 所以选择st的usb
  • window.showModalDialog() 过时替代方案

    一 window showModalDialog 方法说明 window showModalDialog 方法的作用是创建和展示一个指向特定网页的模态对话框 该方法已经过时 特性已经从 Web 标准中删除 虽然一些浏览器目前仍然支持它 但也
  • 最近很火的ChatGPT和GPT4

    ChatGPT 全名 Chat Generative Pre trained Transformer 美国OpenAI研发的聊天机器人程序 于2022年11月30日发布 ChatGPT是人工智能技术驱动的自然语言处理工具 它能够通过理解和学
  • 深度学习-ubuntu18.04+RTX3080+cuda11.2+cudnn8.1.0下安装polarstream全纪录

    安装 创建一个python3 7的虚拟环境 conda create name polarstream python 3 7 激活虚拟环境 source activate polarstream 以下操作均在虚拟环境中进行 安装与cuda和
  • linxu命令个人使用总结

    find命令查找文件 find name 文件名 curl命令访问网址 cur url sh命令开启服务 sh X sh 进入对应文件夹后 直接输入sh X sh 不在X sh对应文件夹下 则用file path ps A 显示所有进程 p
  • spi,ClassLoader,双亲委托模式

    转载 https www cnblogs com hiyujie p wo xueJava1ClassLoader yu shuang qin wei tuo mo sh html 1 ClassLoader分类 Java虚拟机会创建三类C
  • 2013最受欢迎儿童安全座椅品牌评选结果揭晓

    亲贝网讯 1月17日消息 近日 2013最受欢迎儿童安全座椅品牌 评选结果揭晓 榜单中 宝得适 葛莱 好孩子 kiddy concord 智高 斯迪姆 欧贝 宝贝第一 艾乐贝贝共10家儿童安全座椅品牌最终摘得2013年最受欢迎儿童安全座椅品
  • 苹果iOS App上架流程,非iOS开发人员上架教程

    iOS应用上线发布流程一般包含相关证书文件的配置 Xcode的设置 App Store Connect填写App的相关信息 ipa包上传 审核结果以及相关邮件回复 相关证书文件的配置与Xcode的设置一般由iOS开发人员来完成 下面只讲拿到
  • linux下正确卸载rpm包

    查看应用 elasticsearch 为例 rpm qa grep i elasticsearch 执行结果 root bogon elasticsearch head rpm qa grep i elasticsearch elastic
  • 解决this作用域不够的问题

    先看下方的vue代码 主要功能是点击按钮 实现将笑话渲染到页面上 div div
  • 单链表和循环单链表的基本操作

    单链表和循环单链表的基本操作 2021 8 23 lkm 该项目里面包含单链表操作以及循环单链表操作 注意 循环单链表判断条件为p L include
  • 如何读取resources目录下的文件路径(九种方式)

    前情提要 本文中提供了九种方式获取resources目录下文件的方式 其中打印文件的方法如下 根据文件路径读取文件内容 param fileInPath throws IOException public static void getFi
  • children和 siblings的菜单选择

  • 货仓选址(贪心)

    我之前在多篇博客中提到货仓选址 却发现从未仔细介绍过货舱选址 今天就来好好说一下货舱选址这个问题 就以这个图来说 我们假设Ap 1 gt x gt Ap 那么距离之和也就是 x A1 x A2 x Ap A p 1 x A p 2 x An
  • vue中router路由的原理?两种路由模式如何实现?(vue2) -(上)

    平时我们编写路由时 通常直接下载插件使用 在main js文件中引入直接通过引入vue router中的Router通过Vue use使用以后定义一个routeMap数组 里边是我们编写路由的地方 最后通过实例化一个 Router实例 将r
  • SaperaLT 简单介绍

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Sapera Teledyne DALSA 安装SDK包 同其他大厂的平台软件包一样 分为Runtime和SDK俩种安装包 SDK安装完成后 在开始菜单里面会有俩个目录 T
  • 求解矩阵的秩相关算法(C语言)

    矩阵的秩 在线性代数中 一个矩阵A的列秩是A的线性独立的纵列的极大数 通常表示为r A rk A 或rank A 一个矩阵A的列秩是A的线性独立的纵列的极大数目 类似地 行秩是A的线性无关的横行的极大数目 即如果把矩阵看成一个个行向量或者列