np.linalg.solve

np.linalg.solve(x)[source]

Solves the system of linear equations.

References

Examples

In [1]: GF = galois.GF(31)

# Ensure A is full rank and invertible
In [2]: while True:
   ...:     A = GF.Random((4,4))
   ...:     if np.linalg.matrix_rank(A) == 4:
   ...:         break
   ...: 

In [3]: A
Out[3]: 
GF([[19,  0, 13,  6],
    [22,  6, 18,  8],
    [15, 13, 13,  0],
    [23,  0, 16, 27]], order=31)

In [4]: b = GF.Random(4); b
Out[4]: GF([ 9, 19,  3, 26], order=31)

In [5]: x = np.linalg.solve(A, b); x
Out[5]: GF([30, 26,  4, 27], order=31)

In [6]: A @ x
Out[6]: GF([ 9, 19,  3, 26], order=31)
In [7]: GF = galois.GF(31)

# Ensure A is full rank and invertible
In [8]: while True:
   ...:     A = GF.Random((4,4))
   ...:     if np.linalg.matrix_rank(A) == 4:
   ...:         break
   ...: 

In [9]: A
Out[9]: 
GF([[11, 25, 18,  5],
    [ 5,  1,  6,  7],
    [ 5, 19, 17,  6],
    [17,  2, 12, 21]], order=31)

In [10]: B = GF.Random((4,2)); B
Out[10]: 
GF([[ 8, 12],
    [ 0,  9],
    [28, 17],
    [12, 12]], order=31)

In [11]: X = np.linalg.solve(A, B); X
Out[11]: 
GF([[21, 20],
    [28, 21],
    [21, 16],
    [25, 19]], order=31)

In [12]: A @ X
Out[12]: 
GF([[ 8, 12],
    [ 0,  9],
    [28, 17],
    [12, 12]], order=31)