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

org.jeometry.math.decomposition.SVDDecomposition Maven / Gradle / Ivy

There is a newer version: 1.0.5
Show newest version
package org.jeometry.math.decomposition;

import org.jeometry.Jeometry;
import org.jeometry.math.Matrix;

/**
 * This interface describes a Singular Values Decomposition (SVD).
*
* Let A be a real matrix that has a matrix of {@link EigenDecomposition Eigen vectors} P that is not invertible * (no {@link EigenDecomposition Eigen decomposition} can be computed). *

* If A is an m × n real matrix with m > n, then A can be written using a so-called singular value decomposition of the form * A = USVT
*
* where:
*
    *
  • U is a m × m matrix with orthogonal columns (UTU = I) *
  • S is a m × n diagonal matrix made of the singular values *
  • V is a n × n matrix with orthogonal columns (VTV = I) *
*
*
* source: Wolfram math * @author Julien Seinturier - COMEX S.A. - [email protected] - https://github.com/jorigin/jeometry * @version {@value Jeometry#version} b{@value Jeometry#BUILD} * @since 1.0.0 */ public interface SVDDecomposition extends Decomposition { /** * The index of the U matrix within the {@link Decomposition#getComponents() decomposition components}. */ public static final int COMPONENT_U_INDEX = 0; /** * The index of the S matrix within the {@link Decomposition#getComponents() decomposition components}. */ public static final int COMPONENT_S_INDEX = 1; /** * The index of the V matrix within the {@link Decomposition#getComponents() decomposition components}. */ public static final int COMPONENT_V_INDEX = 2; /** * Get the U matrix that is a m × m matrix with orthogonal columns (UTU = I). * @return the U matrix * @see #getS() * @see #getV() */ public Matrix getU(); /** * Get the S matrix that is is a m × n diagonal matrix made of singular values. * @return the S matrix * @see #getU() * @see #getV() */ public Matrix getS(); /** * Get the V matrix that is a n × n matrix with orthogonal columns (VTV = I). * @return the V matrix * @see #getU() * @see #getS() */ public Matrix getV(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy