org.esa.beam.util.math
Class LinEqSysSolver

java.lang.Object
  extended by org.esa.beam.util.math.LinEqSysSolver

public class LinEqSysSolver
extends Object

A gauss-based solver for linear equation systems.

Version:
$Revision$ $Date$
Author:
Norman Fomferra

Constructor Summary
LinEqSysSolver()
           
 
Method Summary
static boolean gauss_debug(double[][] a, double[] c, double[] x, int n, double eps)
          Same as the gausss method, but prints extra debug information.
static boolean gauss(double[][] a, double[] c, double[] x, int n, double eps)
          Solves a linear equation system using the gaussian algorithm.
static boolean pivotize(double[][] a, double[] c, int k, int n, double eps)
          Rearranges the matrix a by swapping line k with a suitable pivot line k' > k.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LinEqSysSolver

public LinEqSysSolver()
Method Detail

gauss

public static boolean gauss(double[][] a,
                            double[] c,
                            double[] x,
                            int n,
                            double eps)
                     throws SingularMatrixException
Solves a linear equation system using the gaussian algorithm.

Parameters:
a - coefficient matrix [0..n-1][0..n-1] (left side of equation)
c - the constant vector [0..n-1] (right side of equation)
x - the result vector [0..n-1] (right side of equation)
n - number of coefficients
eps - the epsilon value, e.g. 1.0e-09
Throws:
SingularMatrixException - if the matrix a is singular

gauss_debug

public static boolean gauss_debug(double[][] a,
                                  double[] c,
                                  double[] x,
                                  int n,
                                  double eps)
Same as the gausss method, but prints extra debug information.

Parameters:
a - coefficient matrix [0..n-1][0..n-1] (left side of equation)
c - the constant vector [0..n-1] (right side of equation)
x - the result vector [0..n-1] (right side of equation)
n - number of coefficients
eps - the epsilon value, e.g. 1.0e-09
Throws:
SingularMatrixException - if the matrix a is singular
See Also:
gauss(double[][], double[], double[], int, double)

pivotize

public static boolean pivotize(double[][] a,
                               double[] c,
                               int k,
                               int n,
                               double eps)
Rearranges the matrix a by swapping line k with a suitable pivot line k' > k.

Parameters:
a - coefficient matrix [0..n-1][0..n-1] (left side of equation)
c - the constant vector [0..n-1] (right side of equation)
k - the current index of a diagonal element = current line and column
n - matrix size
eps - the epsilon value, e.g. 1.0e-09
Throws:
SingularMatrixException - if the matrix a is singular


Copyright © 2002-2012 Brockmann Consult GmbH. All Rights Reserved.