【问题标题】:Why are the inverse results not equal? [duplicate]为什么相反的结果不相等? [复制]
【发布时间】:2013-02-10 15:07:32
【问题描述】:

我在求解矩阵的逆时遇到了一个问题。 首先,我使用 python numpy 库来制作它,代码如下:

import numpy as np
mtx_str = '1 0.05336904  1.03164031  0.05505765;1 0.05248641  3.0928260 0.16233134;1 2.16503202  1.03197617  2.23426146;1 0.05347855 -1.02633768 -0.05488705'
A = np.matrix(mtx_str)
np.rank(A)

它返回 2;但如果我通过输入使用 octave 软件:

  A = [1 0.05336904 1.03164031 0.05505765; 1 0.05248641 3.09282607 0.16233134; 1 2.16503202 1.03197617 2.23426146; 1 0.05347855 -1.02633768 -0.05488705]
inv(A)

它返回 4。

不知道为什么逆向结果不一样?

【问题讨论】:

    标签: numpy octave inverse matrix-inverse


    【解决方案1】:

    在线 numpy 参考中没有很好的记录,但来自文档字符串:

    >>> help(np.rank)
    Help on function rank in module numpy.core.fromnumeric:
    
    rank(a)
        Return the number of dimensions of an array.
    
    >>> help(np.linalg.matrix_rank)
    Help on function matrix_rank in module numpy.linalg.linalg:
    
    matrix_rank(M, tol=None)
        Return matrix rank of array using SVD method
    

    当然结果和 Octave 中的一样:

    >>> np.linalg.matrix_rank(A)
    4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-14
      • 1970-01-01
      • 2016-09-29
      • 1970-01-01
      • 2013-11-13
      • 2021-12-11
      • 2014-05-25
      相关资源
      最近更新 更多