All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.commons.math.linear.LUDecomposition Maven / Gradle / Ivy

/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.apache.commons.math.linear;


/**
 * An interface to classes that implement an algorithm to calculate the
 * LU-decomposition of a real matrix.
 * 

The LU-decomposition of matrix A is a set of three matrices: P, L and U * such that P×A = L×U. P is a rows permutation matrix that is used * to rearrange the rows of A before so that it can be decomposed. L is a lower * triangular matrix with unit diagonal terms and U is an upper triangular matrix.

*

This interface is based on the class with similar name from the * JAMA library.

*
    *
  • a {@link #getP() getP} method has been added,
  • *
  • the det method has been renamed as {@link #getDeterminant() * getDeterminant},
  • *
  • the getDoublePivot method has been removed (but the int based * {@link #getPivot() getPivot} method has been kept),
  • *
  • the solve and isNonSingular methods have been replaced * by a {@link #getSolver() getSolver} method and the equivalent methods provided by * the returned {@link DecompositionSolver}.
  • *
* * @see MathWorld * @see Wikipedia * @version $Revision: 826627 $ $Date: 2009-10-19 12:27:47 +0200 (lun. 19 oct. 2009) $ * @since 2.0 */ public interface LUDecomposition { /** * Returns the matrix L of the decomposition. *

L is an lower-triangular matrix

* @return the L matrix (or null if decomposed matrix is singular) */ RealMatrix getL(); /** * Returns the matrix U of the decomposition. *

U is an upper-triangular matrix

* @return the U matrix (or null if decomposed matrix is singular) */ RealMatrix getU(); /** * Returns the P rows permutation matrix. *

P is a sparse matrix with exactly one element set to 1.0 in * each row and each column, all other elements being set to 0.0.

*

The positions of the 1 elements are given by the {@link #getPivot() * pivot permutation vector}.

* @return the P rows permutation matrix (or null if decomposed matrix is singular) * @see #getPivot() */ RealMatrix getP(); /** * Returns the pivot permutation vector. * @return the pivot permutation vector * @see #getP() */ int[] getPivot(); /** * Return the determinant of the matrix * @return determinant of the matrix */ double getDeterminant(); /** * Get a solver for finding the A × X = B solution in exact linear sense. * @return a solver */ DecompositionSolver getSolver(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy