Another approach is numerical matrix diagonalization. If the Hamiltonian matrix is computed in any complete basis, eigenvalues and eigenvectors are obtained by diagonalizing the matrix. However, all complete basis sets are infinite, and we need to truncate the basis and still obtain accurate results. These techniques boil down to choosing a truncated basis from which accurate wavefunctions can be constructed. The computational time required to diagonalize a matrix scales as N 3 , where N is the dimension of the matrix, so it is important to choose the smallest basis possible from which the relevant wavefunctions can be constructed. It is also convenient to choose a basis in which the matrix is sparse and/or the matrix elements are given by simple algebraic expressions because computing matrix elements can also be a computational burden.