矩阵的秩的算法(不是一个数学计算的问题)

用C#写一个线性代数的计算器,结果发现 矩阵的秩我不会求,各位高手有没有什么思路啊,要求是可以求任意阶的(1-10)的秩。 在现有的知识方面我暂时想不到什么好的办法,我知道我可以求出来,但是估计是用穷举的方法,那样我写到10阶不知道要写到什么时候啊

原理:利用矩阵的行初等变换,把矩阵变成阶梯形或标准形。
方法:1.定义二维数组,类型根据需要,整形或浮点型,或双精度型。
2.如第1行第1列不为0,(1)用这个数除第1行所有各数(2)用这一行乘-a(i,1)加到第i行上 (3)i取遍其余各行。这样第1列除第1行外均为0
3.对其余各行做类似处理,直到以下各行全部为0为止。
4.不全为0的行数即是秩数。追问

我大概知道你说的意思,而且用来 求解应该是没有什么问题,但是我现在要求得 是秩
秩的定义好像就是阶梯矩阵的非零行. 但是用您的算法得出来的好像是上三角矩阵. 您有具体的算法吗?

追答

我那就是化为阶梯性的具体方法,可能说得太具体了。4.不是已经说“不全为0的行数即是秩数”?
化为阶梯性只是求秩的一种方法,还可以用行列式法,求最大线性无关组法,化为上(下)三角法,求解空间的基础解系法等等。这些都是线性(高等)代数的基础。

具体算法当然有,不够是10几年前用isual FoxPro写成的,已制成软件使用多年,上面就是算法梗概,之所以写那么具体,就因为做过,且是做后心得。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-02-10
请问你,高斯消元法会写吗?不会写的话,自己在网上搜一个吧。

利用高斯消元法把矩阵变换为上三角阵,然后其他线性代数的计算都是以此为基础的啦,比如求行列式,求秩,求特征值等等。
相似回答