这是一个算法的实现过程。首先需要了解什么是矩阵的秩,它的计算方法是啥。弄清楚算法之后,用C语言实现即可。
在线性代数中,一个矩阵A的列秩是A的线性独立的纵列的极大数目。类似地,行秩是A的线性无关的横行的极大数目。通俗一点说,如果把矩阵看成一个个行向量或者列向量,秩就是这些行向量或者列向量的秩,也就是极大无关组中所含向量的个数。
算法主要就是消元法,下面是例程:/*开始输入的m为矩阵行数,输入的n为矩阵列数*/
#include
#include
#include
#define MAX 10 //最大行(列)数
typedef struct
{ int m,n;
int a[MAX][MAX];
} matrix;
void input_matrix(matrix *dat);
void output_matrix(matrix dat);
void exchang_row(int *a,int *b,int n); //交换两行
void mul_row(int *a,int k,int n); //将某一行乘以k
void add_row(int *a1,int *a2,int k,int n); //将a2行的k倍加到a1行上
int rank_matrix(matrix dat,matrix *res);
void main()
{ matrix a,b;
int r;
input_matrix(&a);
r=rank_matrix(a,&b);
system("cls");
printf("