Numerical Methods

## Linear algebra libraries

It is convenient to bundle functions into libraries. The functions that were described in the previous sections have been put in a library called matrix.js. The functions are:

• copy(A) - Returns a copy of matrix A.
• det(A) - Returns the determinant of square matrix A.
• dot(A,B) - Returns a matrix that corresponds to the matrix product of matrices A and B.
• identity(N) - Returns an NxN identity matrix.
• inverse(A) - Returns the inverse of a square matrix.
• LU_matrix(A) - Returns the LU matrix of square matrix A. This function overwrites A.
• function LUP_decomp(A) - LU decomposition with partial pivoting. Returns the LU matrix, the permutation matrix P, and sgn=(-1) times the number of row swaps. This function overwrites A.
• LU_solve(LU,b) - LU is a square NxN LU-matrix, and b is NxM matrix of M column vectors. Returns x, a NxM matrix of M column vectors. Each column of x is a solution of Ax=b.
• matrix2tex(A) - Formats a matrix as a tex bmatrix.
• new_matrix(N,M) - Declares an NxM matrix.
• permutation(pv) - Returns a permutation matrix. pv is a vector of integers. pv[i] specifies the column of the 1 in row i.
• pivot(A) - exchanges rows of A to put elements with large absolute values along the diagonal. Returns the permutation matrix P and PA = the matrix product of P times A. This function overwrites A.
• transpose(A) - Returns the transpose of A.
• write_matrix(A) - Formats a matrix as text.

The contents of this library are shown in the text area below.

 function copy(A) { // returns a copy of matrix A row = A.length; col = A[0].length; A2 = new_matrix(row,col); for (i=0; iUmax) { Umax = Math.abs(Uii); row = r; } } if (i!=row) {//swap rows sgn = -sgn; for (q=0; q-1; i--) { //back substitution x[i][q]=y[i][q]; j = i+1; while (jAmax) { Amax = absA; row = i; } } if (j!=row) {//swap rows for (q=0; q "); } document.write("<\/br> "); }

The library can be imported with <script> tags. It is possible to import it as a local file or over the internet by specifying the URL of the file. Examples of both methods of importing the library are given below.

### C/C++ libraries

All major computer languages have scientific libraries. Below the Linear Algebra section of the GNU Scientific library manual is embedded.