Suppose I have a matrix that I know to be singular. This means that there is at least one row in the matrix which is a linear combination of the other rows. What is the fastest way to identify which row that is or which rows they are?
I'm aware that the solution to this problem is not unique in general. The goal is to determine a set of rows which, if removed, leave only linearly independent rows. Then, more linearly independent rows can be added to get a non-singular matrix. Obviously I'm leaving out a bit of context regarding why I would be doing this, but I believe I have included everything relevant to the question.
My thinking is basically to attempt to attempt Gram Schmitt and just mark whatever step returns a zero vector. I doubt there's a faster approach than this, but suspect this problem has been studied to the point that a definitive answer exists.
Edit: To be clear, I only want to find a minimal set of rows such that, if they are removed, I get back a linearly independent set of vectors.
Also, let me give an example of the algorithm that I am proposing. I'm using an example given by nir shahar but slightly modified.
Suppose I have a matrix with rows (1, 0, 0), (0, 1, 0), (1, 0, 0)
The Gram Schmitt algorithm returns first: (1, 0, 0) second: (0, 1, 0) - 0 * (1, 0, 0) third: (1, 0, 0) - 1 * (1, 0, 0) - 0 * (0, 1, 0)
I'm not actually returning this set of vectors. All I care about is the fact that the third step returns the zero vector. So, I flag the third row as being a "problem."