Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Sage给了我一个关于线性拟阵的错误秩的基,或者,我做错了什么?_Python 3.x_Sage - Fatal编程技术网

Python 3.x Sage给了我一个关于线性拟阵的错误秩的基,或者,我做错了什么?

Python 3.x Sage给了我一个关于线性拟阵的错误秩的基,或者,我做错了什么?,python-3.x,sage,Python 3.x,Sage,下面是一个简单的工作示例: import numpy as np import sage D = np.array([[-1., -1., -1., 0., 0., 0., 1.], [ 1., 0., 0., -1., 1., 0., 0.], [ 0., 1., 0., 0., -1., 1., 0.], [ 0., 0., 1., 0., 0., -1., 0.], [ 0., 0., 0.

下面是一个简单的工作示例:

import numpy as np
import sage

D = np.array([[-1., -1., -1.,  0.,  0.,  0.,  1.],
       [ 1.,  0.,  0., -1.,  1.,  0.,  0.],
       [ 0.,  1.,  0.,  0., -1.,  1.,  0.],
       [ 0.,  0.,  1.,  0.,  0., -1.,  0.],
       [ 0.,  0.,  0.,  1.,  0.,  0., -1.],
       [ 1.,  1.,  1.,  1.,  1.,  1.,  1.]])

I = Matrix(D)
M = Matroid(I)

for base in M.bases():
    A = I[:, list(base) ]
    print(np.linalg.matrix_rank(A))
    if np.linalg.matrix_rank(A) == 4:
        print(base)
当我在我的计算机上运行这个程序时,它告诉我其中一个基的秩是4,而不是5。M.rank()验证5是拟阵的秩,实际上大多数基都是该秩。然而,在拟阵中,所有的基都是同一秩的,所以我对到底出了什么问题感到困惑

该基是{0,1,3,4,6},它给出了矩阵:

array([[-1., -1.,  0.,  0.,  1.],
       [ 1.,  0., -1.,  1.,  0.],
       [ 0.,  1.,  0., -1.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  1.,  0., -1.],
       [ 1.,  1.,  1.,  1.,  1.]])
哪一个可以单独检查有排名4。(例如,使用。)还可以验证我是否正确地切割了I


我研究的另一种可能性是,当传递到拟阵类时,列顺序是否混淆了。但是,调用M.representation()返回矩阵D,因此我认为情况并非如此。

这是一个浮点问题。如果你使用

D = np.array([
        [-1, -1, -1,  0,  0,  0,  1],
        [ 1,  0,  0, -1,  1,  0,  0],
        [ 0,  1,  0,  0, -1,  1,  0],
        [ 0,  0,  1,  0,  0, -1,  0],
        [ 0,  0,  0,  1,  0,  0, -1],
        [ 1,  1,  1,  1,  1,  1,  1]])
那么问题就不会发生了