Documentation of 'edu.rit.numeric.NonNegativeLeastSquares' Java class
NonNegativeLeastSquares
edu.rit.numeric

Class NonNegativeLeastSquares



  • public class NonNegativeLeastSquares
    extends java.lang.Object
    Class NonNegativeLeastSquares provides a method for solving a least squares minimization problem with nonnegativity constraints. The solve() method finds an approximate solution to the linear system of equations Ax = b, such that ||Ax - b||2 is minimized, and such that x >= 0. The inputs to and outputs from the solve() method are stored in the fields of an instance of class NonNegativeLeastSquares.

    The Java code is a translation of the Fortran subroutine NNLS from Charles L. Lawson and Richard J. Hanson, Solving Least Squares Problems (Society for Industrial and Applied Mathematics, 1995), page 161.

    • Field Summary

      Fields 
      Modifier and Type Field and Description
      double[][] a
      The MxN-element A matrix for the least squares problem.
      double[] b
      The M-element b vector for the least squares problem.
      int[] index
      The N-element index vector.
      int M
      The number of rows, typically the number of input data points, in the least squares problem.
      int N
      The number of columns, typically the number of output parameters, in the least squares problem.
      double normsqr
      The squared Euclidean norm of the residual vector, ||Ax - b||2.
      int nsetp
      The number of elements in the set P; that is, the number of positive values (inactive constraints).
      double[] x
      The N-element x vector for the least squares problem.
    • Constructor Summary

      Constructors 
      Constructor and Description
      NonNegativeLeastSquares(int M, int N)
      Construct a new nonnegative least squares problem of the given size.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      void solve()
      Solve this least squares minimization problem with nonnegativity constraints.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • M

        public final int M
        The number of rows, typically the number of input data points, in the least squares problem.
      • N

        public final int N
        The number of columns, typically the number of output parameters, in the least squares problem.
      • a

        public final double[][] a
        The MxN-element A matrix for the least squares problem. On input to the solve() method, a contains the matrix A. On output, a has been replaced with QA, where Q is an MxM-element orthogonal matrix generated during the solve() method's execution.
      • b

        public final double[] b
        The M-element b vector for the least squares problem. On input to the solve() method, b contains the vector b. On output, b has been replaced with Qb, where Q is an MxM-element orthogonal matrix generated during the solve() method's execution.
      • x

        public final double[] x
        The N-element x vector for the least squares problem. On output from the solve() method, x contains the solution vector x.
      • index

        public final int[] index
        The N-element index vector. On output from the solve() method: index[0] through index[nsetp-1] contain the indexes of the elements in x that are in set P, the set of positive values; that is, the elements that are not forced to be zero (inactive constraints). index[nsetp] through index[N-1] contain the indexes of the elements in x that are in set Z, the set of zero values; that is, the elements that are forced to be zero (active constraints).
      • nsetp

        public int nsetp
        The number of elements in the set P; that is, the number of positive values (inactive constraints). An output of the solve() method.
      • normsqr

        public double normsqr
        The squared Euclidean norm of the residual vector, ||Ax - b||2. An output of the solve() method.
    • Constructor Detail

      • NonNegativeLeastSquares

        public NonNegativeLeastSquares(int M,
                                       int N)
        Construct a new nonnegative least squares problem of the given size. Fields M and N are set to the given values. The array fields a, b, x, and index are allocated with the proper sizes but are not filled in.
        Parameters:
        M - Number of rows (input data points) in the least squares problem.
        N - Number of columns (output parameters) in the least squares problem.
        Throws:
        java.lang.IllegalArgumentException - (unchecked exception) Thrown if M <= 0 or N <= 0.
    • Method Detail

      • solve

        public void solve()
        Solve this least squares minimization problem with nonnegativity constraints. The solve() method finds an approximate solution to the linear system of equations Ax = b, such that ||Ax - b||2 is minimized, and such that x >= 0. On input, the field a must be filled in with the matrix A and the field b must be filled in with the vector b for the problem to be solved. On output, the other fields are filled in with the solution as explained in the documentation for each field.
        Throws:
        TooManyIterationsException - (unchecked exception) Thrown if too many iterations occurred without finding a minimum (more than 3N iterations).

DMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.