## 3 The Solution Algorithm
### Improvement of the Algorithm Using Efficient Selection of Bases  
Step 1 in the CCM algorithm is to find a subset of \(m\) variables among the \((m+n)\) variables so that a resulting Jacobian matrix is non-singular [8]. This is equivalent to finding a subset of column vectors in the original \(m\times(m+n)\) matrix that is linearly independent. Let \(\phi_{1},\cdots,\phi_{m}\) be differentiable functions in \((m+n)\) variables:  
\[A=\left[\begin{array}{cccc}\partial\phi_{1}/\partial x_{1}&\partial\phi_{1} /\partial x_{2}&\cdots&\partial\phi_{1}/\partial x_{m+n}\\ \partial\phi_{2}/\partial x_{1}&\partial\phi_{2}/\partial x_{2}&\cdots& \partial\phi_{2}/\partial x_{m+n}\\ \vdots&\vdots&\vdots&\vdots\\ \partial\phi_{m}/\partial x_{1}&\partial\phi_{m}/\partial x_{2}&\cdots& \partial\phi_{m}/\partial x_{m+n}\end{array}\right]\]  
In order to find a subset of \(m\) columns of \(A\) that is linearly independent, the original method by [PERSON] and [PERSON] [15] was to choose any \(m\) subset of the \((m+n)\) columns to check if it qualified. There are two drawbacks to doing this. First, there are \(C_{m}^{m+n}\) choices of such subsets, and second, each choice will require a calculation of the determinant of an \(m\times m\) matrix, which has the same complexity as a Gaussian elimination process. We will show that, by using Gaussian elimination on \(A\) to reach its reduced row echelon form, we can find one subset of columns of \(A\) that is linearly independent. The process of Gaussian elimination involves performing a sequence of row operations to a given matrix to reach its reduced row echelon form. Each type of row operation corresponds to a type of elementary matrix, all of which are nonsingular. Each time a row operation is performed, it is equivalent to multiplying the original matrix by an elementary matrix on the left. We can also see that in an \(m\times(m+n)\) matrix with rank \(m\), there is a subset of column vectors that is linearly independent. Now, let us state the proposition that yields the discovery of the desired linearly independent subset of columns of \(A\).  
**Proposition 1**.: _Let \(m\) and \(n\) be positive integers, \(A\) be an \(m\times(m+n)\) matrix with rank \(m\), and \(u_{1},\ldots,u_{m+n}\) be the column vectors of \(A\). Suppose \(B\) is the reduced row echelon form of \(A\), and that \(v_{1},\ldots,v_{m+n}\) are the columns of \(B\). Then, there exist integers \(1\leq j_{1}<j_{2}<\cdots<j_{m}\leq(m+n)\) such that \(\left[v_{j_{1}},\cdots,v_{j_{m}}\right]=I_{m\times m}\) forms the \(m\times m\) identity matrix. Moreover, the corresponding subset of columns of \(A\), \(\left[u_{j_{1}},\cdots,u_{j_{m}}\right]\), is non-singular._  
Proof.: Matrix \(B\) must also have a rank of \(m\) because it is the reduced row echelon form of \(A\), whose rank is \(m\). Thus, there are \(m\) columns of \(B\) that form the \(m\times m\) identity matrix. That is, there exist integers \(1\leq j_{1}<j_{2}<\cdots<j_{m}\leq(m+n)\) such that \(\left[v_{j_{1}},\cdots,v_{j_{m}}\right]=I_{m\times m}\). During the process of Gaussian elimination, performed to obtain the reduced row echelon form of \(A\), we can find elementary matrices \(E_{1},E_{2},\cdots,E_{p}\) such that  
\[B=E_{p}\cdots E_{2}E_{1}A\]  
Note that the \(k\)th column of \(B\) is also obtained from performing the same row operations on the \(k\)th column of \(A\). Thus, we can say  
\[v_{j_{k}}=E_{p}\cdots E_{2}E_{1}u_{j_{k}},\ k=1,2,\cdots,m\]  
Additionally, we can say  
\[E_{p}\cdots E_{2}E_{1}\left[u_{j_{1}},\cdots,u_{j_{m}}\right]=\left[v_{j_{1}},\cdots,v_{j_{m}}\right]=I\]Since all the elementary matrices \(E_{1},E_{2},\cdots,E_{p}\) and the identity matrix \(I\) are nonsingular, then \(\big{[}u_{j_{1}},\cdots,u_{j_{m}}\big{]}\) must also be nonsingular. Now, we can simply apply Gaussian elimination to the matrix and find a linearly independent subset of column vectors that allows the implicit function theorem and the CCM algorithm to be applied.