Package com.irurueta.numerical
Class PadeApproximantEstimator
java.lang.Object
com.irurueta.numerical.PadeApproximantEstimator
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 ClassesModifier and TypeClassDescriptionstatic class
Contains result of Padé approximant. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate 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
ConstructorsConstructorDescriptionDefault constructor.PadeApproximantEstimator
(int improveTimes) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionestimatePadeCoefficients
(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.
-
Field Details
-
DEFAULT_IMPROVEMENT_TIMES
private static final int DEFAULT_IMPROVEMENT_TIMESNumber of times to iteratively improve LU decomposition solution by default.- See Also:
-
improveTimes
private final int improveTimesNumber of times to iteratively improve LU decomposition. -
luDecomposer
private final com.irurueta.algebra.LUDecomposer luDecomposerComputes LU decomposition to find denominator coefficients. -
n
private int nNumber of coefficients being processed based on provided Taylor power series ones. -
q
private com.irurueta.algebra.Matrix qContains matrix to solve Padé coefficients. -
x
private com.irurueta.algebra.Matrix xContains intermediate solution for denominator coefficients. -
y
private com.irurueta.algebra.Matrix yContains intermediate solution for numerator coefficients. -
ax
private com.irurueta.algebra.Matrix axContains product of "a" and "x" matrices to iteratively improve LU solution. -
residual
private com.irurueta.algebra.Matrix residualContains residual to iteratively improve LU solution. -
improvedX
private com.irurueta.algebra.Matrix improvedXImproved 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.
-