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.
