Class GaussianElimination


  • public class GaussianElimination
    extends Object
    The GaussianElimination data type provides methods to solve a linear system of equations Ax = b, where A is an m-by-n matrix and b is a length n vector.

    This is a bare-bones implementation that uses Gaussian elimination with partial pivoting. See GaussianEliminationLite.java for a stripped-down version that assumes the matrix A is square and nonsingular. See GaussJordanElimination for an alternate implementation that uses Gauss-Jordan elimination. For an industrial-strength numerical linear algebra library, see JAMA.

    This computes correct results if all arithmetic performed is without floating-point rounding error or arithmetic overflow. In practice, there will be floating-point rounding error; partial pivoting helps prevent accumulated floating-point rounding errors from growing out of control (though it does not provide any guarantees).

    For additional documentation, see Section 9.9 Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.

    Author:
    Robert Sedgewick, Kevin Wayne
    • Constructor Detail

      • GaussianElimination

        public GaussianElimination​(double[][] A,
                                   double[] b)
        Solves the linear system of equations Ax = b, where A is an m-by-n matrix and b is a length m vector.
        Parameters:
        A - the m-by-n constraint matrix
        b - the length m right-hand-side vector
        Throws:
        IllegalArgumentException - if the dimensions disagree, i.e., the length of b does not equal m
    • Method Detail

      • primal

        public double[] primal()
        Returns a solution to the linear system of equations Ax = b.
        Returns:
        a solution x to the linear system of equations Ax = b; null if no such solution
      • isFeasible

        public boolean isFeasible()
        Returns true if there exists a solution to the linear system of equations Ax = b.
        Returns:
        true if there exists a solution to the linear system of equations Ax = b; false otherwise
      • main

        public static void main​(String[] args)
        Unit tests the GaussianElimination data type.
        Parameters:
        args - the command-line arguments