**test_matrix**,
a Python code which
defines test matrices for which the condition number, determinant,
eigenvalues, eigenvectors, inverse, null vectors, P*L*U factorization
or linear system solution are known. Examples include the
Fibonacci, Hilbert, Redheffer, Vandermonde, Wathen and Wilkinson
matrices.

A wide range of matrix dimensions, forms and properties are available. These matrices may be useful in testing an algorithm for correctness on a variety of problems.

Many of the matrices can be rectangular, with the user specifying the number of rows and columns. Almost all the matrices can be made of arbitrary size, with the user specifying the dimension.

Many different matrix zero structures are available, including diagonal, bidiagonal, tridiagonal, pentadiagonal, banded, upper and lower triangular, and Hessenberg.

Many different matrix symmetry patterns are available, including symmetric, antisymmetric, persymmetric, circulant, Toeplitz, and Hankel.

Many of the matrices come from a MATLAB M file collection developed by Nicholas Higham, Department of Mathematics, University of Manchester.

An earlier version of the collection is available, again as MATLAB M files, in ACM TOMS Algorithm 694, in the TOMS directory of the NETLIB web site.

Many of these matrices, and many other matrices, are available at https://math.nist.gov, the Matrix Market web site.

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

**test_matrix** is available in
a C version and
a C++ version and
a FORTRAN90 version and
a MATLAB version and
an Octave version and
a Python version.

cg, a Python code which implements a simple version of the conjugate gradient (CG) method for solving a system of linear equations of the form A*x=b, suitable for situations in which the matrix A is positive definite (only real, positive eigenvalues) and symmetric.

jacobi, a Python code which implements the Jacobi iteration for solving symmetric positive definite (SPD) systems of linear equations.

jordan_matrix, a Python code which returns a random matrix in Jordan canonical form.

levenshtein_matrix, a Python code which computes the Levenshtein matrix associated with the distance between two strings.

plasma_matrix, a Python code which sets up a matrix associated with a problem in plasma physics.

risk_matrix, a Python code which computes the transition and adjacency matrix for the game of RISK.

snakes_matrix, a Python code which computes the transition matrix for Snakes and Ladders.

wathen_matrix, a Python code which compares storage schemes (full, banded, sparse triplet, sparse) and solution strategies (A\x, Linpack, conjugate gradient) for linear systems involving the Wathen matrix, which can arise when solving a problem using the finite element method (FEM).

web_matrix, a Python code which stores sample matrices describing a web page network. These matrices are typically very sparse, and the examples here are stored using the sparse triplet (ST) format. They can be used to demonstrate pagerank and other graph algorithms.

- test_matrix.py, the source code.
- test_matrix.sh, runs the tests.
- test_matrix.txt, the output file.