python 线性代数:求矩阵的秩

标签:
python基础python基础教程python学习 |
分类: Python学习 |
矩阵的秩,课本上是这么定义的:
定义2.1 在矩阵A中,任取k行与k列(k≤m,k≤n),位于这些行列交叉处的k2个元素,不改变它们在矩阵中所处的位置次序而得的k阶行列式,称为矩阵A的k阶子式。
定义2.1 设在矩阵A中有一个不等于0的r阶子式D,且所有r+1阶子式(如果存在的话)全等于0,那末D称为矩阵A的最高阶非零子式,数r称为矩阵A的秩,记作
R(A)。
不明白的继续看书,明白的继续看下面的代码。我们用到了numpy包中的linalg.matrix_rank方法计算矩阵的秩。
-
先引入numpy模块
-
http://s3/mw690/006du1Yszy73aKpExwuf2&690线性代数:求矩阵的秩" TITLE="python
线性代数:求矩阵的秩" />
-
创建一个单位矩阵i
-
http://s12/mw690/006du1Yszy73aKqaaFBcb&690线性代数:求矩阵的秩" TITLE="python
线性代数:求矩阵的秩" />
-
计算单位矩阵i的秩
-
http://s5/mw690/006du1Yszy73aKqGpa464&690线性代数:求矩阵的秩" TITLE="python
线性代数:求矩阵的秩" />
-
改变一下i右下角元素的值,设置为0
-
http://s6/mw690/006du1Yszy73aKrdJvTf5&690线性代数:求矩阵的秩" TITLE="python
线性代数:求矩阵的秩" />
-
重新计算矩阵的秩,得到3
-
http://s14/mw690/006du1Yszy73aKrH1hzdd&690线性代数:求矩阵的秩" TITLE="python
线性代数:求矩阵的秩" />
-
以下是我们用到的所有代码:
>>> import numpy
>>> i=numpy.eye(4)
>>> i
array([[ 1.,
0., 0., 0.], [ 0., 1., 0., 0.], [ 0., 0., 1., 0.], [ 0., 0., 0., 1.]]) >>>
>>>
>>>
>>> numpy.matrix_rank(i)
Traceback (most recent call last):
File "", line 1, in numpy.matrix_rank(i) AttributeError: 'module' object has no attribute 'matrix_rank'
>>> numpy.linalg.matrix_rank(i)
4
>>> i[-1,-1]=0
>>> i
array([[ 1.,
0., 0., 0.], [ 0., 1., 0., 0.], [ 0., 0., 1., 0.], [ 0., 0., 0., 0.]]) >>> i[1,1]
1.0
>>>
>>>
>>>
>>> numpy.linalg.matrix_rank(i)
3