up previous next
LinKer, LinKerModP

find the kernel of a matrix
Syntax

LinKer(M:MAT):LIST
LinKerModP(M:MAT):LIST

where M is a matrix over Q or Z.


Description
The first function returns a list whose components are lists representing a Z-basis for the kernel of M. Calling the function twice on the same input will not necessarily produce the same output, though in each case, a basis for the kernel is produced.

The second function returns a list whose components are lists representing a basis for the kernel of M over the current field of coefficients.

Example
  M := Mat([[1,2,3,4],[5,6,7,8],[9,10,11,12]]);
  LinKer(M);
[[1, -1, -1, 1], [0, 1, -2, 1]]
-------------------------------
  M*Transposed(Mat(It));
Mat([
  [0, 0],
  [0, 0],
  [0, 0]
])
-------------------------------
  Use ZZ/(3)[x];
  LinKerModP(M);
[[1, 1, 1, 0], [0, -1, -1, -1]]
-------------------------------
  M*Transposed(Mat(It));

Mat([
  [0, 0],
  [0, 0],
  [0, 0]
])
-------------------------------


See Also