Ticket #5135 (new enhancement)

Opened 4 years ago

Alternative basis for kernel of a matrix

Reported by: rbeezer Owned by: rbeezer
Priority: minor Milestone: sage-feature
Component: linear algebra Keywords: kernel, basis
Cc: Work issues:
Report Upstream: Reviewers:
Authors: Merged in:
Dependencies: Stopgaps:

Description

The left_kernel() method in matrix2.pyx computes basis vectors from the reduced echelon form of the transposed matrix. For each non-pivot column, the corresponding entry of a basis vector is set to 1, the other non-pivot columns are set to zero, and the remaining entries are set to negatives of other specific entries of the matrix.

This basis is then used in a constructor of a subspace, and the basis is "echelonized" in the process. Add a new keyword argument, echelonize, to left_kernel, that defaults to true. With echelonize=false, the subspace will be constructed with the "pivot" basis and it will not be further massaged.

Sage-devel discussion  here.

Note: See TracTickets for help on using tickets.