java.lang.Object
dev.nm.algebra.linear.matrix.doubles.factorization.gaussianelimination.GaussJordanElimination

public class GaussJordanElimination extends Object
Gauss-Jordan elimination performs elementary row operations to reduce a matrix to the reduced row echelon form. The three elementary row operations are: scaling rows, swapping rows, and adding multiples of a row to another row. That is, T * A == U where T is the transformation matrix, U is in the reduced row echelon form.

This implementation makes sure that the leading 1s are numerically 1 for comparison purpose. Suppose there is a leading 1 at [i,j], U.get(i, j) == 1 always returns true.

See Also:
  • Constructor Details

    • GaussJordanElimination

      public GaussJordanElimination(Matrix A, boolean usePivoting, double epsilon)
      Run the Gauss-Jordan elimination algorithm.
      Parameters:
      A - a matrix
      usePivoting - true if partial pivoting is wanted, e.g., for numerical stability
      epsilon - a precision parameter: when a number |x| ≤ ε, it is considered 0
    • GaussJordanElimination

      public GaussJordanElimination(Matrix A)
      Run the Gauss-Jordan elimination algorithm.
      Parameters:
      A - a matrix
  • Method Details

    • T

      public Matrix T()
      Get the transformation matrix, T, such that T * A = U.
      Returns:
      the transformation matrix T
    • U

      public Matrix U()
      Get the reduced row echelon form matrix, U, such that T * A = U.
      Returns:
      the reduced row echelon form matrix