This function looks at submatrices of the given matrix, and tries to find one of the specified rank. If it succeeds, it returns a list of two lists. The first is the list of row indices, the second is the list of columns, of the desired rank submatrix. If it fails to find such a matrix, the function returns null. The option MaxMinors is used to control how many minors to consider. If left null, the number considered is based on the size of the matrix.
i1 : R = QQ[x,y]; |
i2 : M = matrix{{x,y,2,0,2*x+y}, {0,0,1,0,x}, {x,y,0,0,y}}; 3 5 o2 : Matrix R <--- R |
i3 : l = getSubmatrixOfRank(2, M) o3 = {{1, 2}, {2, 1}} o3 : List |
i4 : (M^(l#0))_(l#1) o4 = | 1 0 | | 0 y | 2 2 o4 : Matrix R <--- R |
i5 : l = getSubmatrixOfRank(2, M) o5 = {{1, 0}, {2, 1}} o5 : List |
i6 : (M^(l#0))_(l#1) o6 = | 1 0 | | 2 y | 2 2 o6 : Matrix R <--- R |
i7 : getSubmatrixOfRank(3, M) |
The option Strategy is used to used to control how the function computes the rank of the submatrices considered. See getSubmatrixOfRank(...,Strategy=>...). In the future, we hope to speed up the function to use multiple threads of execution, in which case the threading would be controlled by the option Threads.
The object getSubmatrixOfRank is a method function with options.