加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

python 线性代数:求矩阵的秩

(2016-07-13 12:53:39)
标签:

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方法计算矩阵的秩。

  1. 先引入numpy模块

  2. http://s3/mw690/006du1Yszy73aKpExwuf2&690线性代数:求矩阵的秩" TITLE="python 线性代数:求矩阵的秩" />

  3. 创建一个单位矩阵i

  4. http://s12/mw690/006du1Yszy73aKqaaFBcb&690线性代数:求矩阵的秩" TITLE="python 线性代数:求矩阵的秩" />

  5. 计算单位矩阵i的秩

  6. http://s5/mw690/006du1Yszy73aKqGpa464&690线性代数:求矩阵的秩" TITLE="python 线性代数:求矩阵的秩" />

  7. 改变一下i右下角元素的值,设置为0

  8. http://s6/mw690/006du1Yszy73aKrdJvTf5&690线性代数:求矩阵的秩" TITLE="python 线性代数:求矩阵的秩" />

  9. 重新计算矩阵的秩,得到3

  10. http://s14/mw690/006du1Yszy73aKrH1hzdd&690线性代数:求矩阵的秩" TITLE="python 线性代数:求矩阵的秩" />

  11. 以下是我们用到的所有代码:

    >>> 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

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有