我有一个n +1 × n整数矩阵.我想找到一个线性组合的行减少到零mod 2.我该如何在Python中实现这一点?我可以自己写高斯消元,我觉得应该有一种方法可以用numpy或其他库来做到这一点,而不用从头开始写.示例:
我有矩阵
[1,3,0]
[1,1,0]
[1,0,1]
[0,1,5]
函数返回[1,0,1,1].因为这个线性组合产生[2,4,6]=[0,0,0] mod 2.
我有一个n +1 × n整数矩阵.我想找到一个线性组合的行减少到零mod 2.我该如何在Python中实现这一点?我可以自己写高斯消元,我觉得应该有一种方法可以用numpy或其他库来做到这一点,而不用从头开始写.示例:
我有矩阵
[1,3,0]
[1,1,0]
[1,0,1]
[0,1,5]
函数返回[1,0,1,1].因为这个线性组合产生[2,4,6]=[0,0,0] mod 2.
您可以使用galois:
from galois import GF2
import numpy as np
A = [[1, 3, 0],
[1, 1, 0],
[1, 0, 1],
[0, 1, 5]]
A = GF2(np.array(A).T % 2)
print(A.null_space())
它提供:
[[1 0 1 1]
[0 1 1 1]]
行是域F_2上矩阵的零空间的基.