IGLib
1.7.2
The IGLib base library EXTENDED - with other lilbraries and applications.
|
Contains methods that compute the values of orthogonal polynomials. More...
Static Public Member Functions | |
static double | HermiteH (int n, double x) |
Computes the value of a (physicists') Hermite polynomial. More... | |
static double | HermiteHe (int n, double x) |
Computes the value of a (statisticians') Hermite polynomial. More... | |
static double | LaguerreL (int n, double x) |
Computes the value of a Laguerre polynomial. More... | |
static double | LaguerreL (int n, double a, double x) |
Computes the value of an associated Laguerre polynomial. More... | |
static double | LegendreP (int l, double x) |
Computes the value of a Legendre polynomial. More... | |
static double | LegendreP (int l, int m, double x) |
Computes the value of an associated Legendre polynomial. More... | |
static double | ChebyshevT (int n, double x) |
Computes the value of a Cebyshev polynomial. More... | |
static double | ZernikeR (int n, int m, double rho) |
Computes the value of a Zernike polynomial. More... | |
Static Private Member Functions | |
static double | ChebyshevT_Series1 (int n, double x) |
Contains methods that compute the values of orthogonal polynomials.
Orthogonal polynomials are complete families of polynomials that are orthogonal on a given interval with a given integration weight. Because of this property, any function on the interval can be expanded in the polynomials in a unique way.
|
inlinestatic |
Computes the value of a (physicists') Hermite polynomial.
n | The order, which must be non-negative. |
x | The argument. |
Hermite polynomials are orthogonal on the interval (-∞,+∞) with the weight e-x2.
They appear in the solution of the one-dimensional, quantum mehanical, harmonic oscilator.
Statisticans' Hermite polynomials (see HermiteHe) are related to physicists' Hermite polynomials via Hn(x) = 2nHn(x √2). Staticians' Hermite polynomials do not grow as quickly as physicists', and may therefore be preferable for large values of n and x which could overflow System.Double.
ArgumentOutOfRangeException | n is negative. |
Referenced by Test.OrthogonalPolynomialsTest.HermiteAddition(), Test.OrthogonalPolynomialsTest.HermiteInvalidOrder(), Test.OrthogonalPolynomialsTest.HermiteOrthonormality(), Test.OrthogonalPolynomialsTest.HermiteRecurrence(), Test.OrthogonalPolynomialsTest.HermiteReflection(), Test.OrthogonalPolynomialsTest.HermiteSpecialCases(), and Test.OrthogonalPolynomialsTest.HermiteSum().
|
inlinestatic |
Computes the value of a (statisticians') Hermite polynomial.
n | The order, which must be non-negative. |
x | The argument. |
Hermite polynomials are orthogonal on the interval (-∞,+∞) with a weight function equal to the standard normal probability distribution.
Their orthonormality relation makes them a useful basis for expressing pertubations arround a normal distribution.
Physicists' Hermite polynomials (see HermiteH) are related to statisticians' Hermite polynomials via Hn(x) = 2nHn(x √2).
ArgumentOutOfRangeException | n is negative. |
|
inlinestatic |
Computes the value of a Laguerre polynomial.
n | The order, which must be non-negative. |
x | The argument, which must be non-negative. |
Laguerre functions are orthogonal on the interval [0,+∞) with the weight e-x.
ArgumentOutOfRangeException | n or x is negative. |
Referenced by Test.OrthogonalPolynomialsTest.AssociatedLaguerreAlphaRecurrence(), Test.OrthogonalPolynomialsTest.AssociatedLaguerreOrthonormality(), Test.OrthogonalPolynomialsTest.AssociatedLaguerreSpecialCases(), Test.OrthogonalPolynomialsTest.AssociatedLaguerreSum(), Test.OrthogonalPolynomialsTest.LaguerreInequality(), Test.OrthogonalPolynomialsTest.LaguerreInvalidArgument(), Test.OrthogonalPolynomialsTest.LaguerreInvalidOrder(), Test.OrthogonalPolynomialsTest.LaguerreOrthonormality(), Test.OrthogonalPolynomialsTest.LaguerreRecurrence(), and Test.OrthogonalPolynomialsTest.LaguerreSpecialCases().
|
inlinestatic |
Computes the value of an associated Laguerre polynomial.
n | The order, which must be non-negative. |
a | The associated order, which must be greater than -1. |
x | The argument. |
The associated Laguerre polynomials are orthonogal on the interval [0,+∞) with the weight xa e-x.
|
inlinestatic |
Computes the value of a Legendre polynomial.
l | The order, which must be non-negative. |
x | The argument, which must lie on the closed interval between -1 and +1. |
Legendre polynomials are orthogonal on the interval [-1,1].
ArgumentOutOfRangeException | x lies outside [-1,+1]. |
Referenced by Test.OrthogonalPolynomialsTest.AssociatedLegendreAgreement(), Test.OrthogonalPolynomialsTest.AssociatedLegendreLowOrders(), Test.OrthogonalPolynomialsTest.AssociatedLegendreOrthonormalityL(), Test.OrthogonalPolynomialsTest.AssociatedLegendreRecurrenceL(), Test.OrthogonalPolynomialsTest.AssociatedLegendreRecurrenceM(), Test.OrthogonalPolynomialsTest.LegendreInequality(), Test.OrthogonalPolynomialsTest.LegendreInvalidArgument(), Test.OrthogonalPolynomialsTest.LegendreNegativeOrder(), Test.OrthogonalPolynomialsTest.LegendreOrthonormality(), Test.OrthogonalPolynomialsTest.LegendreRecurrence(), Test.OrthogonalPolynomialsTest.LegendreReflection(), Test.OrthogonalPolynomialsTest.LegendreSpecialCases(), Test.OrthogonalPolynomialsTest.LegendreTuronInequality(), Test.OrthogonalPolynomialsTest.SphericalHarmonicAddition(), Test.OrthogonalPolynomialsTest.SphericalHarmonicLegendre(), and Test.SpinTest.ThreeJLegendreIntegral().
|
inlinestatic |
Computes the value of an associated Legendre polynomial.
l | The order, which must be non-negative. |
m | The associated order, which must lie between -l and l inclusive. |
x | The argument, which must lie on the closed interval betwen -1 and +1. |
Associated Legendre polynomials appear in the definition of the AdvancedMath.SphericalHarmonic functions.
For values of l and m over about 150, values of this polynomial can exceed the capacity of double-wide floating point numbers.
References Meta.Numerics.Functions.AdvancedIntegerMath.Factorial(), and Meta.Numerics.Functions.AdvancedIntegerMath.LogFactorial().
|
inlinestatic |
Computes the value of a Cebyshev polynomial.
n | The order, which must be non-negative. |
x | The argument, which must lie in the closed interval between -1 and +1. |
Chebyshev polynomials are orthogonal on the interval [-1,1] with the weight (1-x2)-1/2.
ArgumentOutOfRangeException | n is negative, or x lies outside [-1,+1]. |
Referenced by Test.OrthogonalPolynomialsTest.ChebyshevCosine(), Test.OrthogonalPolynomialsTest.ChebyshevDoubling(), Test.OrthogonalPolynomialsTest.ChebyshevInequality(), Test.OrthogonalPolynomialsTest.ChebyshevInvalidArgument(), Test.OrthogonalPolynomialsTest.ChebyshevMultiplication(), Test.OrthogonalPolynomialsTest.ChebyshevRecurrence(), Test.OrthogonalPolynomialsTest.ChebyshevReflection(), and Test.OrthogonalPolynomialsTest.ChebyshevSpecialCases().
|
inlinestaticprivate |
|
inlinestatic |
Computes the value of a Zernike polynomial.
n | The order paramter, which must be non-negative. |
m | The index parameter, which must lie between 0 and n. |
rho | The argument, which must lie between 0 and 1. |
Zernike polynomials are orthononal on the interval [0,1] with the weight ρ.
They are often used in optics to characterize the imperfections in a lens. In this context, the amplitude of each is associated with a name given in the following table.
n | m | name |
---|---|---|
1 | 1 | tilt |
2 | 0 | defocus |
2 | 2 | astigmatism |
3 | 1 | coma |
3 | 3 | trefoil |
Referenced by Test.OrthogonalPolynomialsTest.ZernikeBessel(), Test.OrthogonalPolynomialsTest.ZernikeOrthonormality(), and Test.OrthogonalPolynomialsTest.ZernikeSpecialCases().