Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.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 有没有一个好的方法来求特征p>;域中矩阵的秩;0?_Python_Numpy_Matrix - Fatal编程技术网

Python 有没有一个好的方法来求特征p>;域中矩阵的秩;0?

Python 有没有一个好的方法来求特征p>;域中矩阵的秩;0?,python,numpy,matrix,Python,Numpy,Matrix,我需要一个有效的算法或一个已知的方法来确定一个矩阵a的系数在一个具有正特征的领域 例如,在5个元素的有限域中,我有以下矩阵: import numpy A=[[2,3],[3,2]] print numpy.linalg.matrix_rank(A) 该方法给出了2的结果,但在特征5中,该矩阵的秩为1,因为[2,3]+[3,2]=[0,0]Numpy没有内置的对有限字段的支持。代码中的矩阵A被视为实数矩阵,因此具有秩2 如果您真的需要用Numpy支持有限字段,您必须自己定义自己的数据类型以及算

我需要一个有效的算法或一个已知的方法来确定一个矩阵a的系数在一个具有正特征的领域

例如,在5个元素的有限域中,我有以下矩阵:

import numpy
A=[[2,3],[3,2]]
print numpy.linalg.matrix_rank(A)

该方法给出了2的结果,但在特征5中,该矩阵的秩为1,因为
[2,3]+[3,2]=[0,0]

Numpy没有内置的对有限字段的支持。代码中的矩阵
A
被视为实数矩阵,因此具有秩2

如果您真的需要用Numpy支持有限字段,您必须自己定义自己的数据类型以及算术运算,如图所示。当然也有关于正确的错误处理(比如除以零)的问题

即使这样,也必须重写许多常用例程以支持字段数据类型。例如,从文档中可以看出,该例程使用奇异值分解(SVD),这对于有限域没有很好的定义,因此您必须自己编写秩查找算法


至于算法本身,您可以尝试实现简单的旧高斯消去法,但这可能是一个棘手的问题,而且速度非常慢,因此您可能会更好地使用其他工具/软件包,例如Sage

我将安装Sage、MatrixSpace(GF(p),2,2)和函数秩应该工作b=matrix(GF(5),[[2,3],[3,2]])B.太好了!享受有限域的乐趣:)