求解矩阵的秩相关算法(C语言)_c语言求解方正的秩-程序员宅基地

技术标签: 算法  矩阵  线性代数+C语言  线性代数  

矩阵的秩

在线性代数中,一个矩阵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语言编译环境下运行

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43670168/article/details/122285362

智能推荐

【Elasticsearch<一>✈️✈️】简单安装使用以及各种踩坑

本地实现 Elasticsearch、kibana 管理工具、IK 分词器 的安装部署以及初步使用(以及填坑策略)

Word插件开发

创建一个新的 Office 插件项目:在 Visual Studio 中,选择"文件" -> “新建项目”,然后在模板中选择"Office/SharePoint",选择适当的 Office 插件项目模板,如 Word 插件、Excel 插件或 PowerPoint 插件。设计用户界面:在解决方案资源管理器中,打开你的插件项目,并在其中打开相应的 Office 文件(如 Word 文件、Excel 文件或 PowerPoint 文件)。你可以在 Office 应用中测试插件的功能,并在开发过程中进行调试。

便携式iv检测仪解析

在应用场景方面,便携式IV功率测试仪广泛应用于光伏电站的日常运维、光伏组件生产过程中的质量控制以及光伏项目的前期评估等环节。在光伏电站运维中,定期对光伏组件进行IV测试,可以及时发现性能下降或损坏的组件,为电站的运维提供有力支持。首先,从工作原理来看,光伏电站便携式IV功率测试仪通过模拟太阳光照射光伏组件,并测量组件在不同电压下的电流输出,从而绘制出IV曲线。此外,测试仪还可以计算光伏组件的功率输出、转换效率等参数,为用户提供全面的性能评估。

postgresql 索引之 hash_load_categories_hash postgres-程序员宅基地

文章浏览阅读3.6k次。os: ubuntu 16.04postgresql: 9.6.8ip 规划192.168.56.102 node2 postgresqlhelp create indexpostgres=# \h create indexCommand: CREATE INDEXDescription: define a new indexSyntax:CREATE [ UNIQUE ..._load_categories_hash postgres

face++实现人脸识别及人脸相似度对比_face++人脸识别 html5-程序员宅基地

文章浏览阅读4.8k次。使用face++,先获取key和secret下方是人脸识别,还添加了画出人脸轮廓的正方形下方是人脸识别,还添加了画出人脸轮廓的正方形 import requests#网络访问控件 from json import JSONDecoder#互联网数据交换标准格式 import cv2 as cv#图像处理控件 http_url =&amp;amp;amp;quot;https://a..._face++人脸识别 html5

desencrypt java md5_Java实现DES加密与解密,md5加密以及Java实现MD5加密解密类-程序员宅基地

文章浏览阅读322次。很多时候要对秘要进行持久化加密,此时的加密采用md5。采用对称加密的时候就采用DES方法了import java.io.IOException;import java.security.MessageDigest;import java.security.SecureRandom;import javax.crypto.Cipher;import javax.crypto.SecretKey;im..._java desencrypt.encrypt(pass)

随便推点

FRP搭建内网穿透(亲测有效)_locyanfrp-程序员宅基地

文章浏览阅读5.7w次,点赞50次,收藏276次。FRP搭建内网穿透1.概述:frp可以通过有公网IP的的服务器将内网的主机暴露给互联网,从而实现通过外网能直接访问到内网主机;frp有服务端和客户端,服务端需要装在有公网ip的服务器上,客户端装在内网主机上。2.简单的图解:3.准备工作:1.一个域名(www.test.xyz)2.一台有公网IP的服务器(阿里云、腾讯云等都行)3.一台内网主机4.下载frp,选择适合的版本下载解压如下:我这里服务器端和客户端都放在了/usr/local/frp/目录下4.执行命令# 服务器端给执_locyanfrp

UVA 12534 - Binary Matrix 2 (网络流‘最小费用最大流’ZKW)_uva12534-程序员宅基地

文章浏览阅读687次。题目:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=93745#problem/A题意:给出r*c的01矩阵,可以翻转格子使得0表成1,1变成0,求出最小的步数使得每一行中1的个数相等,每一列中1的个数相等。思路:网络流。容量可以保证每一行和每一列的1的个数相等,费用可以算出最小步数。行向列建边,如果该格子是_uva12534

免费SSL证书_csdn alphassl免费申请-程序员宅基地

文章浏览阅读504次。1、Let's Encrypt 90天,支持泛域名2、Buypass:https://www.buypass.com/ssl/resources/go-ssl-technical-specification6个月,单域名3、AlwaysOnSLL:https://alwaysonssl.com/ 1年,单域名 可参考蜗牛(wn789)4、TrustAsia5、Alpha..._csdn alphassl免费申请

测试算法的性能(以选择排序为例)_算法性能测试-程序员宅基地

文章浏览阅读1.6k次。测试算法的性能 很多时候我们需要对算法的性能进行测试,最简单的方式是看算法在特定的数据集上的执行时间,简单的测试算法性能的函数实现见testSort()。【思想】:用clock_t计算某排序算法所需的时间,(endTime - startTime)/ CLOCKS_PER_SEC来表示执行了多少秒。【关于宏CLOCKS_PER_SEC】:以下摘自百度百科,“CLOCKS_PE_算法性能测试

Lane Detection_lanedetectionlite-程序员宅基地

文章浏览阅读1.2k次。fromhttps://towardsdatascience.com/finding-lane-lines-simple-pipeline-for-lane-detection-d02b62e7572bIdentifying lanes of the road is very common task that human driver performs. This is important ..._lanedetectionlite

【数据结构】静态表查找之顺序查找、二分查找、分块查找_读取表元是什么意思-程序员宅基地

文章浏览阅读4.1k次,点赞8次,收藏23次。​通过一定的方法找出与给定关键字相同的数据元素的过程叫做查找。也就是根据给定的某个值,在查找表中确定一个关键字等于给定值的记录或数据元素。_读取表元是什么意思

推荐文章

热门文章

相关标签