Suppose I have a linear subspace of some vector space, e.g., described as the column space of some big matrix. How would I algorithmically find a basis of that same subspace where the basis matrix is sparse, i.e., most entries in most basis vectors are zero?
I understand that this will depend on the structure of the matrix, so you might prefer to interpret this as “as many entries as possible are zero” instead of “most entries are zero”. I'm interested in good practical solutions, even if the results are not optimal.
Suppose your subspace $V$ is the column space of the $m \times n$ matrix $M$, where $M$ has rank $n < m$. Choose any subset $S$ of $\{1,\ldots, m\}$ of cardinality $n-1$, and consider the $(n-1) \times n$ submatrix $M_S$ of $M$ consisting of the rows enumerated in $S$. If $y$ is a nonzero vector in the null space of $M_S$, then $M y$ is a nonzero member of $V$ with zeros in the positions given by $S$. Do this for $m$ randomly chosen subsets $S$ and and you will probably get enough such vectors to span $V$.
For example, I tried the random $7 \times 4$ matrix $$ M = \left[ \begin {array}{cccc} -6&2&3&9\\ 0&5&-1&2 \\ 1&-2&-1&7\\ 8&1&3&-2 \\ 7&-4&7&-8\\ -1&-1&-6&9 \\ -6&-4&-6&-6\end {array} \right] $$
Using subsets $[2, 3, 7], [4, 5, 7], [3, 5, 6], [3, 5, 7]$ I got the vectors consisting of the columns of $$\left[ \begin {array}{cccc} {\frac {780}{19}}&{\frac {3}{26}}&-{ \frac {289}{28}}&{\frac {681}{13}}\\ 0&-{\frac {80}{ 13}}&{\frac {471}{14}}&-{\frac {311}{26}}\\ 0&{ \frac {151}{13}}&0&0\\ -{\frac {468}{19}}&0&{\frac { 615}{14}}&-{\frac {755}{26}}\\ -{\frac {311}{19}}&0&0 &0\\ -4&{\frac {170}{13}}&0&-{\frac {415}{26}} \\ 0&0&-{\frac {415}{7}}&0\end {array} \right] $$
Since that matrix has rank $4$, these columns span $V$.