Class PadeApproximantEstimator

java.lang.Object
com.irurueta.numerical.PadeApproximantEstimator

public class PadeApproximantEstimator extends Object
Estimates the Padé approximant rational function by using a number of coefficients of a Taylor series. Padé approximants can yield more accurate solutions than Taylor series in certain situations.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    Contains result of Padé approximant.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private com.irurueta.algebra.Matrix
    Contains product of "a" and "x" matrices to iteratively improve LU solution.
    private static final int
    Number of times to iteratively improve LU decomposition solution by default.
    private com.irurueta.algebra.Matrix
    Improved LU solution in one iteration.
    private final int
    Number of times to iteratively improve LU decomposition.
    private final com.irurueta.algebra.LUDecomposer
    Computes LU decomposition to find denominator coefficients.
    private int
    Number of coefficients being processed based on provided Taylor power series ones.
    private com.irurueta.algebra.Matrix
    Contains matrix to solve Padé coefficients.
    private com.irurueta.algebra.Matrix
    Contains residual to iteratively improve LU solution.
    private com.irurueta.algebra.Matrix
    Contains intermediate solution for denominator coefficients.
    private com.irurueta.algebra.Matrix
    Contains intermediate solution for numerator coefficients.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Default constructor.
    PadeApproximantEstimator(int improveTimes)
    Constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    estimatePadeCoefficients(double[] taylorCoefficients)
    Estimates Padé coefficients for provided Taylor power series ones.
    void
    estimatePadeCoefficients(double[] taylorCoefficients, double[] numeratorResult, double[] denominatorResult)
    Estimates Padé coefficients for provided Taylor power series ones.
    private void
    estimatePadeCoefficients(double[] taylorCoefficients, int n, double[] numeratorResult, double[] denominatorResult)
    Estimates Padé coefficients for provided Taylor power series ones.
    private void
    improveLuSolve(com.irurueta.algebra.Matrix a, com.irurueta.algebra.Matrix b, com.irurueta.algebra.Matrix x, com.irurueta.algebra.Matrix result)
    One step to iteratively improve LU solve solution.
    private void
    initialize(int n)
    Initializes required matrices.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • DEFAULT_IMPROVEMENT_TIMES

      private static final int DEFAULT_IMPROVEMENT_TIMES
      Number of times to iteratively improve LU decomposition solution by default.
      See Also:
    • improveTimes

      private final int improveTimes
      Number of times to iteratively improve LU decomposition.
    • luDecomposer

      private final com.irurueta.algebra.LUDecomposer luDecomposer
      Computes LU decomposition to find denominator coefficients.
    • n

      private int n
      Number of coefficients being processed based on provided Taylor power series ones.
    • q

      private com.irurueta.algebra.Matrix q
      Contains matrix to solve Padé coefficients.
    • x

      private com.irurueta.algebra.Matrix x
      Contains intermediate solution for denominator coefficients.
    • y

      private com.irurueta.algebra.Matrix y
      Contains intermediate solution for numerator coefficients.
    • ax

      private com.irurueta.algebra.Matrix ax
      Contains product of "a" and "x" matrices to iteratively improve LU solution.
    • residual

      private com.irurueta.algebra.Matrix residual
      Contains residual to iteratively improve LU solution.
    • improvedX

      private com.irurueta.algebra.Matrix improvedX
      Improved LU solution in one iteration.
  • Constructor Details

    • PadeApproximantEstimator

      public PadeApproximantEstimator()
      Default constructor. Uses default number of times to iteratively improve solution.
    • PadeApproximantEstimator

      public PadeApproximantEstimator(int improveTimes)
      Constructor.
      Parameters:
      improveTimes - number of times to iteratively improve solution.
      Throws:
      IllegalArgumentException - if provided number of times is negative.
  • Method Details

    • estimatePadeCoefficients

      public PadeApproximantEstimator.Result estimatePadeCoefficients(double[] taylorCoefficients) throws NumericalException
      Estimates Padé coefficients for provided Taylor power series ones.
      Parameters:
      taylorCoefficients - Taylor series coefficients.
      Returns:
      Result containing Padé approximant numerator and denominator coefficients.
      Throws:
      NumericalException - if a numerical error occurs.
      IllegalArgumentException - if provided number of Taylor series coefficients is less than 3.
    • estimatePadeCoefficients

      public void estimatePadeCoefficients(double[] taylorCoefficients, double[] numeratorResult, double[] denominatorResult) throws NumericalException
      Estimates Padé coefficients for provided Taylor power series ones.
      Parameters:
      taylorCoefficients - Taylor series coefficients.
      numeratorResult - numerator coefficients of Padé approximant (must be (taylorCoefficients.length - 1) / 2).
      denominatorResult - denominator coefficients of Padé approximant (must be (taylorCoefficients.length - 1) / 2)..
      Throws:
      NumericalException - if a numerical error occurs.
      IllegalArgumentException - if provided number of Taylor series coefficients is less than 3 or if provided numerator or denominator result coefficients have an invalid size.
    • estimatePadeCoefficients

      private void estimatePadeCoefficients(double[] taylorCoefficients, int n, double[] numeratorResult, double[] denominatorResult) throws NumericalException
      Estimates Padé coefficients for provided Taylor power series ones.
      Parameters:
      taylorCoefficients - Taylor series coefficients.
      n - Number of padé coefficients to generate.
      numeratorResult - numerator coefficients of Padé approximant (must be (taylorCoefficients.length - 1) / 2).
      denominatorResult - denominator coefficients of Padé approximant (must be (taylorCoefficients.length - 1) / 2)..
      Throws:
      NumericalException - if a numerical error occurs.
      IllegalArgumentException - if provided number of Taylor series coefficients is less than 3 or if provided numerator or denominator result coefficients have an invalid size.
    • improveLuSolve

      private void improveLuSolve(com.irurueta.algebra.Matrix a, com.irurueta.algebra.Matrix b, com.irurueta.algebra.Matrix x, com.irurueta.algebra.Matrix result) throws com.irurueta.algebra.AlgebraException
      One step to iteratively improve LU solve solution.
      Parameters:
      a - a matrix of a linear system of equations to be solved.
      b - b matrix of a linear system of equations to be solved.
      x - x matrix containing initial solution of linear system of equations to be improved.
      result - matrix where result will be stored.
      Throws:
      com.irurueta.algebra.AlgebraException - if a numerical error occurs.
    • initialize

      private void initialize(int n) throws com.irurueta.algebra.AlgebraException
      Initializes required matrices.
      Parameters:
      n - length of required number of Padé coefficients for provided Taylor series ones.
      Throws:
      com.irurueta.algebra.AlgebraException - if a numerical error occurs.