edu.princeton.cs.algs4

## Class GaussJordanElimination

• Object
• edu.princeton.cs.algs4.GaussJordanElimination

• ```public class GaussJordanElimination
extends Object```
The `GaussJordanElimination` 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 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.

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 and 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

Methods
Modifier and Type Method and 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 the `GaussJordanElimination` data type.
`double[]` `primal()`
Returns a solution to the linear system of equations Ax = b.
• ### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
• ### Constructor Detail

• #### GaussJordanElimination

```public 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.
Parameters:
`A` - the n-by-n constraint matrix
`b` - the length n right-hand-side vector
• ### 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 the `GaussJordanElimination` data type.
Parameters:
`args` - the command-line arguments