Gas*_*ull 5 python numpy matrix
我需要一种有效的算法或已知的方法来确定矩阵 A 的数学秩,该矩阵的系数位于正特征域中。
例如,在 5 个元素的有限域中,我有以下矩阵:
import numpy
A=[[2,3],[3,2]]
print numpy.linalg.matrix_rank(A)
Run Code Online (Sandbox Code Playgroud)
此方法给出的结果为 2,但在特征 5 中,该矩阵自 以来排名为 1 [2,3]+[3,2]=[0,0]。
Numpy 没有对有限域的内置支持。代码中的矩阵A被视为实数矩阵,因此具有秩 2。
如果您确实需要使用 Numpy 支持有限字段,则必须自己定义自己的数据类型以及算术运算,如此处所示。当然,还存在对正确错误处理(例如除以零)的担忧。
即使如此,许多常见例程也必须重写才能支持您的字段数据类型。例如,从numpy.linalg.matrix_rank文档中,该例程使用奇异值分解 (SVD),该分解对于有限域没有很好的定义,因此您必须自己编写排名查找算法。
至于算法本身,您可以尝试沿着这些思路实现普通的旧高斯消除,但这可能会很麻烦并且非常慢,所以您可能会更好地使用其他工具/包,例如Sage。
| 归档时间: |
|
| 查看次数: |
2112 次 |
| 最近记录: |