Version: 2.0 | License: Free for academic and research use
Overview
OrthogonalPolynomials is a comprehensive Mathematica package for symbolic and numerical computations with orthogonal polynomials and Gaussian quadrature formulas.
Key Features
- Symbolic & Numerical - Exact symbolic and arbitrary-precision numerical evaluation
- Gaussian Quadratures - Construction of various Gaussian-type quadrature rules
- TTR Coefficients - Algorithms for computing three-term recurrence coefficients
- Measure Modifications - Christoffel algorithms for modifying orthogonal polynomial measures
- Comprehensive Coverage - 23+ classes of orthogonal polynomials
Supported Polynomial Classes
Continuous Orthogonal Polynomials
| Polynomial | Symbol | Support | Parameters |
| Jacobi | aJacobi | [-1, 1] | alpha, beta > -1 |
| Legendre | aLegendre | [-1, 1] | — |
| Chebyshev I | aChebyshevI | [-1, 1] | — |
| Chebyshev II | aChebyshevII | [-1, 1] | — |
| Gegenbauer | aGegenbauer | [-1, 1] | lambda > -1/2 |
| Generalized Gegenbauer | aGegenbauerG | [-1, 1] | lambda, mu > -1/2 |
| Laguerre | aLaguerre | [0, infinity) | alpha > -1 |
| Generalized Laguerre | aLaguerreG | [0, infinity) | alpha, s |
| Hermite | aHermite | (-infinity, infinity) | — |
| Generalized Hermite | aHermiteG | (-infinity, infinity) | parameter |
| Associated Legendre | aAssociatedLegendre | [-1, 1] | m >= 0 |
| Stieltjes-Wigert | aStieltjesWigert | [0, infinity) | — |
| Abel | aAbel | [0, infinity) | — |
| Lindelof | aLindelof | (-infinity, infinity) | — |
| Carlitz | aCarlitz | [0, infinity) | — |
| Logistic | aLogistic | (-infinity, infinity) | — |
Discrete Orthogonal Polynomials
| Polynomial | Symbol | Support | Parameters |
| Charlier | aCharlier | {0, 1, 2, ...} | a > 0 |
| Chebyshev M | aChebyshevM | discrete | — |
| Chebyshev N | aChebyshevN | discrete | — |
| PQ Polynomials | aPQ | discrete | — |
Complex-Support Polynomials
| Polynomial | Symbol | Support | Parameters |
| Bessel | aBessel | Unit circle | — |
| Generalized Bessel | aBesselG | Unit circle | — |
| Gautschi-Milovanovic | aGautschiMilovanovic | Complex | — |
Core Capabilities
1. Three-Term Recurrence (TTR) Coefficients
Compute coefficients alpha_n and beta_n in:
p_{n+1}(x) = (x - alpha_n) * p_n(x) - beta_n * p_{n-1}(x)
Algorithms: aChebyshevAlgorithm, aChebyshevAlgorithmModified, aStieltjesAlgorithm, aLanczosAlgorithm, aThreeTermRecurrence
Each polynomial provides TTR via name["ttr", parameters].
2. Gaussian Quadrature Rules
| Quadrature Type | Function | Description |
| Gaussian | aGaussianNodesWeights | Standard n-point Gaussian quadrature |
| Gauss-Radau | aRadauNodesWeights | One endpoint fixed |
| Gauss-Lobatto | aLobattoNodesWeights | Both endpoints fixed |
| Gauss-Kronrod | aKronrodNodesWeights | 2n+1 point extension |
| Gauss-Turan | aTuranNodesWeights | Uses derivatives |
| Sigma | aSigmaNodesWeights | Variable multiplicity |
| Anti-Gaussian | aAntiGaussianNodesWeights | 2n+1 nodes for error estimation |
| Fejer | aFejerNodesWeights | Interpolatory on Chebyshev nodes |
Node Algorithms: aQR, aPasquini, aDevideConquer, aLaurie
3. Christoffel Modifications
Multiplication: aLinear, aQuadratic, aQuadraticSymmetric, aQuadraticReal
Division: aLinearDivisor, aQuadraticDivisor, aQuadraticDivisorSymmetric
Associated: aFunctionIIKind, aModify
4. Other Functions
aMakePolynomial, aKernel, aNumerator, aWeight, aMoments, aNorm, aChangeInterval
5. Trigonometric Polynomials
aCreateTTRSinPeriodicPi, aCreateTTRCos, aCreateTrigPolynomial
Installation Instructions
Quick Installation
Download
OrthogonalPolynomials.zipLocate Mathematica applications directory:
- Windows:
C:\Users\<Username>\AppData\Roaming\Mathematica\Applications\ - macOS:
~/Library/Mathematica/Applications/ - Linux:
~/.Mathematica/Applications/
- Windows:
Extract zip into this directory (creates
OrthogonalPolynomials/folder)Load in Mathematica:
<< OrthogonalPolynomials`
Zip includes: Core algorithms, 23+ polynomial classes, documentation (~500 KB)
Verification
<< OrthogonalPolynomials`
aSupportedPolynomials["Continuous"]
aJacobi[5, 0.5, 0.5, 0.3]
aJacobi["ttr", 0.5, 0.5][k]
Quick Start Guide
Example 1: Evaluate Polynomials
<< OrthogonalPolynomials`
aLegendre[5, 0.5]
aJacobi[10, 0.5, 0.5, 0.3, WorkingPrecision -> 50]
aHermite[5, 1.0, ReturnList -> True]
Example 2: Gaussian Quadrature
{nodes, weights} = aGaussianNodesWeights[10, aLegendre]
Sum[weights[[i]] * nodes[[i]]^18, {i, 1, 10}]
Example 3: TTR from Moments
moments = Table[(1 + (-1)^k)/(k + 1), {k, 0, 20}];
{alpha, beta} = aChebyshevAlgorithm[moments, WorkingPrecision -> 30]
Example 4: Christoffel Modification
{alpha, beta} = Transpose[Table[aJacobi["ttr", 0, 0][k], {k, 0, 20}]];
{alphaMod, betaMod} = aChristoffelAlgorithm[10, {aLinear, 0.5}, alpha, beta]
Example 5: Gauss-Turan Quadrature
{nodes, weights} = aTuranNodesWeights[5, aLegendre, 2]
System Requirements
- Mathematica 11.0 or later
- Memory: 512 MB minimum (2+ GB recommended)
- Disk Space: ~2 MB
Documentation
Access usage messages via ?functionName in Mathematica:
?aGaussianNodesWeights
?aChebyshevAlgorithm
Full documentation in Documentation/English/ directory.
Package Version: 2.0