as ballistics problems and the solutions to systems of partial differential equations. The first serious attempt to minimize computer error in the application of algorithms to real data is John von Neumann and Herman Goldstine's work in 1947. The field has grown as technology has increasingly enabled researchers to solve complex problems on extremely large high-precision matrices, and some numerical algorithms have grown in prominence as technologies like parallel computing have made them practical approaches to scientific problems. Matrix decompositions Partitioned matrices For many problems in applied linear algebra, it is useful to adopt the perspective of a matrix as being a concatenation of column vectors. For example, when solving the linear system , rather than understanding x as the product of with b, it is helpful to think of x as the vector of coefficients in the linear expansion of b in the basis formed by the columns of A. Thinking of matrices as a concatenation of columns is also a practical approach for the purposes of matrix algorithms. This is because matrix algorithms frequently contain two nested loops: one over the columns of a matrix A, and another over the rows of A. For example, for matrices and vectors and , we could use the column partitioning perspective to compute Ax + y as for q = 1:n for p = 1:m y(p) = A(p,q)*x(q) + y(p) end end Singular value decomposition The singular value decomposition of a matrix is where U and V are unitary, and is diagonal. The diagonal entries of are called the singular values of A. Because singular values are the square roots of the eigenvalues of , there is a tight connection between the singular value decomposition and eigenvalue decompositions. This means that most methods for computing the singular value decomposition are similar to eigenvalue methods; perhaps the most common method involves Householder procedures. QR factorization The QR factorization of a matrix is a matrix and a matrix so that A = QR, where Q is orthogonal and R is upper triangular. The two main algorithms for computing QR factorizations are the Gram–Schmidt process and the Householder transformation. The QR factorization is often used to solve linear least-squares problems, and eigenvalue problems (by way of the iterative QR algorithm). LU factorization An LU factorization of a matrix A consists of a lower triangular matrix L and an upper triangular matrix U so that