Package edu.princeton.cs.algs4
Class GaussJordanElimination
- Object
-
- edu.princeton.cs.algs4.GaussJordanElimination
-
public class GaussJordanElimination extends Object
TheGaussJordanElimination
data type provides methods to solve a linear system of equations Ax = b, where A is an n-by-n matrix and b is a length n vector. If no solution exists, it finds a solution y to yA = 0, yb ≠ 0, which serves as a certificate of infeasibility.This implementation uses Gauss-Jordan elimination with partial pivoting. See
GaussianElimination
for an implementation that uses Gaussian elimination (but does not provide the certificate of infeasibility). 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 Summary
Constructors Constructor Description GaussJordanElimination(double[][] A, double[] b)
Solves the linear system of equations Ax = b, where A is an n-by-n matrix and b is a length n vector.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description double[]
dual()
Returns a solution to the linear system of equations yA = 0, yb ≠ 0.boolean
isFeasible()
Returns true if there exists a solution to the linear system of equations Ax = b.static void
main(String[] args)
Unit tests theGaussJordanElimination
data type.double[]
primal()
Returns a solution to the linear system of equations Ax = b.
-
-
-
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
-
dual
public double[] dual()
Returns a solution to the linear system of equations yA = 0, yb ≠ 0.- Returns:
- a solution y to the linear system of equations
yA = 0, yb ≠ 0;
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 theGaussJordanElimination
data type.- Parameters:
args
- the command-line arguments
-
-