在解决矩阵的逆时,我遇到了问题。 首先,我使用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;但如果我通过输入以下来使用八度音程软件:
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.
我想知道为什么反向结果不同?
答案 0 :(得分:3)
在线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