Class LinearSystemSolver


public class LinearSystemSolver extends Object
Solve a system of linear equations in the form:
Ax = b,
We assume that, after row reduction, A has no more rows than columns. That is, the system must not be over-determined. For example, the following system is not over-determined. One of the rows is linearly dependent. \[ \begin{bmatrix} 1 invalid input: '&' -1 invalid input: '&' 0\\ 0 invalid input: '&' -2 invalid input: '&' 0\\ 0 invalid input: '&' 0 invalid input: '&' -1\\ 0 invalid input: '&' 0 invalid input: '&' -2 \end{bmatrix} x = \begin{bmatrix} -0.8\\ -1.6\\ 0.8\\ 1.6 \end{bmatrix} \] This linear system of equations is solved in two steps.
  1. First, solve Ax = 0, the homogeneous system, for non trivial solutions.
  2. Then, solve Ax = b for a particular solution.
If A has full rank, this implementation solves the system by LU decomposition. Otherwise, a particular solution is found by x = T * b. The final solution is:
x_particular + {x_null_space_of_A}
hence, the translation of the null space of A by the vector x_particular.
See Also:
  • Constructor Details

    • LinearSystemSolver

      public LinearSystemSolver(double epsilon)
      Construct a solver for a linear system of equations.
      epsilon - a precision parameter: when a number |x| ≤ ε, it is considered 0
  • Method Details

    • solve

      Get a particular solution for the linear system, Ax = b.
      A0 - a matrix representing a linear system of equations (the homogeneous part)
      a particular solution