Is there a quick way to compute the matrix whose column space is the basis of the null space of another matrix? Is there a quick way to compute the matrix whose column space is the null space of another matrix?
I can do this by hand, but if I wanted a computer to do it, is there a quick, efficient way for me to find a matrix $Z$ that has the null space of a matrix $A$ as its column space?
 A: I'll assume that $A$ is a square matrix of order $k$. Basically, you want $AZ = 0$, with $Z$ of a full rank and as much columns as possible.
Consider an SVD $A = U \Sigma V^*$, where $U$ and $V$ are unitary and
$$\Sigma = \mathop{\rm diag}(\sigma_1, \dots, \sigma_k), \quad \sigma_1 \ge \cdots \ge \sigma_p > \sigma_{p+1} = \cdots = \sigma_k = 0.$$
Define
$$X = \mathop{\rm diag}(x_1, \dots, x_k), \quad x_1 = \cdots = x_p = 0, \quad x_{p+1} = \cdots = x_k = 1$$
and $Z = VX$. Note that $\Sigma X = 0$ and that $\mathop{\rm rank} \Sigma + \mathop{\rm rank} X = k$ (meaning that $X$ has a maximum rank). Obviously,
$$AZ = U \Sigma V^* V X = U \Sigma X = 0.$$
Of course, $VX = \begin{bmatrix} 0 & V'\end{bmatrix}$ is just $p$ zero columns and $V'$, which is the last $k - p$ columns of $V$. This gives you a nice solution, especially since the columns of $V$ are orthonormal (use $V'$ instead of $X$).
If it's obvious enough for you, you can do without $X$. From $AZ = 0$, we see that
$$\Sigma V^* Z = 0.$$
Since $V$ has orthonormal columns, the last $k - p$ columns of it do the job.
Be a bit careful with the dimensions if $A$ and $\Sigma$ are rectangular, but the idea should work in that case too.
A: I would just use the QR factorization (this previous answer of mine shows how to do it when the dimension is not square). 
If you are using integers only then something like the Bareiss algorithm would probably be best. You can get something of an introduction looking this one of my previous anwers; I am otherwise not specifically familiar with the Bareiss algorithm.
For floating point values, the best, in terms of precision, would be with using the SVD, Singular Value Decomposition. The null space is found from the small but non-zero values (non-zero due to the inaccuracy of floating point precision) in the singular values, where if exact numbers were possible, they would be exactly zero with no error. Close to zero is virtually zero, within precision, when you see that all other singular values are relatively large in comparison.
I personally would do something similar to Gram-Schmidt orthogonalization (if not wanting to do the QR factorization as originally stated), starting with the identity matrix, and making each column in turn orthogonal to all columns in the matrix of interest. This other answer of mine shows such a procedure, if you use the identity matrix instead of $A_0$ in step $1$. That will leave you with a remainder of columns which will be the null space.
