Linear Algebra Software

The following are several public domain programs executable under DOS to perform basic linear algebra computations. Feel free to download and use them. I run them by merely double clicking on the file name for the program under Windows Explorer. Unless stated otherwise, each program was written in the Pascal programming language by David Hecker.

Row Reduction
The program rowred.exe finds the reduced row echelon form of a matrix. The program assumes that the matrix entered has all integer entries. The output is in rational form; that is, the entries are expressed as fractions. The output is primitive in the sense that the fractional representation is still used when the resulting entry is an integer.  Beware that this program is very simple - not sophisticated at all.  In particular, it occasionally produces incorrect answers due to an internal integer overflow error while doing intermediate computations with fractions.  If you get unexpected, strange answers, do not trust them!  (A negative denominator in the answer is a certain giveaway of a problem.)  We hope to rewrite this program in Java in the future to eliminate this overflow problem.

The program rowstep.exe is similar to rowred.exe described above, except that it stops at several key steps along the way to reduced row echelon form, namely, after each time a pivot position is changed, each time a pivot is changed to a 1, after each row swap, and after performing all of the type (II) operations to get all of the zeros in a pivot column. The output is similar to that of rowred.exe.   The same warning given about rowred.exe regarding overflow errors applies to rowstep.exe.

Determinant
The program dterm.exe computes the determinant of a square matrix. The answer is printed out with two digits after the decimal place displayed. It works recursively using cofactor expansion.

Matrix Multiplication
The program matrix.exe performs matrix multiplication. It was written as an exercise in writing a program that is robust assuming a user entering garbage, and so is a much larger program than is necessary. The directions are self explanatory.

Gram-Schmidt Process
The program orthbas.exe performs the Gram-Schmidt Process on a set of vectors in Rn to create an orthogonal basis for the span of the vectors entered. The program assumes that the vectors have all integer entries. Enter the entries for each vector separated by blank spaces. This program was written (I believe) in C++ by Matthew Formica, a student in my Linear Algebra class in Spring 1997.

Characteristic Polynomial
The program charpoly.exe computes the characteristic polynomial of a matrix having all integer entries. The input and output are self explanatory. This program was written in FORTRAN by David Gaudiosi, a student in my Linear Algebra class in Spring 1999.