A package on orthogonal polynomials and special functions

Wolfram Koepf
DOI: https://doi.org/10.48550/arXiv.math/9703216
1997-03-06
Abstract:In many applications (hupergeometric-type) special functions like orthogonal polynomials are needed. For example in more than 50% of the published solutions for the (application-oriented) questions in the "Problems Section" of SIAM Review special functions occur. In this article the Mathematica package SpecialFunction which can be obtained from the URL <a class="link-external link-http" href="http://www.zib.de/koepf" rel="external noopener nofollow">this http URL</a> is introduced [15]. Algorithms to convert between power series representations and their generating functions is the main topic of this package {[8]-[15]}, extending the previous package PowerSeries [12]. Moreover the package automatically finds differential and recurrence equations {[13]-[14]} for expressions and for sums (the latter using Zeilberger's algorithm {[23], [18], [13\}. As an application the fast computation of polynomial approximations of solutions of linear differential equations with polynomial coefficients is presented. This is the asymptotically fastest known algorithm for series computations, and it is much faster than Mathematica's builtin Series command if applicable. Many more applications are considered. Finally the package includes implementations supporting the efficient computation of classical continuous and discrete orthogonal polynomials.
Classical Analysis and ODEs,Numerical Analysis
What problem does this paper attempt to address?
The problem that this paper attempts to solve is to develop and introduce a Mathematica package named SpecialFunctions for dealing with orthogonal polynomials and special functions. Specifically, this package mainly solves the following problems: 1. **Conversion between power series representation and generating function**: The package provides algorithms to convert the power series representation to its generating function and vice versa. This is very important in many practical applications, especially when it is necessary to quickly calculate the approximate values of specific functions. 2. **Automatic discovery of differential equations and recurrence relations**: For a given expression or summation, the package can automatically generate the corresponding differential equation or recurrence relation. For example, the Zeilberger algorithm is used to discover the recurrence relation of the summation. 3. **Efficient calculation of classical continuous and discrete orthogonal polynomials**: The package supports efficient calculation methods, which are especially suitable for classical continuous and discrete orthogonal polynomials. This is very useful in the fields of numerical analysis and symbolic computation. 4. **Fast calculation of polynomial approximations of solutions to linear differential equations**: As mentioned in the paper, for linear differential equations with polynomial coefficients, the package provides the asymptotically fastest known algorithm to calculate the polynomial approximations of their solutions. This is much faster than Mathematica's built - in `Series` command. 5. **Z - transform and its inverse transform**: The package also implements the calculation of Z - transform and its inverse transform, which are important tools in discrete - time signal processing. 6. **Calculation of Feynman diagrams**: The paper mentions the use of pure recurrence relations to simplify the calculation of Feynman diagrams, especially for the case of non - negative integer parameters. 7. **Higher - order applications**: Including the proofs of Dougall's identity and Clausen's identity, which are of great significance in the theory of special functions. Through these functions, the SpecialFunctions package provides researchers with a powerful tool that can efficiently handle and calculate special functions and orthogonal polynomials in various application scenarios. ### Formula Examples - **Conversion from power series representation to generating function**: \[ f(x)=\sum_{k = 0}^{\infty}a_kx^k \] can be converted to the generating function \(F(z)\), satisfying the differential equation: \[ DE(F(z)) = 0 \] - **Z - transform**: \[ \mathcal{Z}\{a_k\}=f(z)=\sum_{n = 0}^{\infty}a_nz^{-n} \] - **Dougall's identity**: \[ {}_7F_6\left(\begin{array}{c} a,\frac{1 + a}{2},b,c,d,1 + 2a - b - c - d + n,-n\\ \frac{a}{2},1 + a - b,1 + a - c,1 + a - d,b + c + d - a - n,1 + a + n \end{array};1\right)=\frac{(1 + a)_n(1 + a - b - c)_n(1 + a - b - d)_n(1 + a - c - d)_n}{(1 + a - b)_n(1 + a - c)_n(1 + a - d)_n(1 + a - b - c - d)_n} \] These functions and formulas make the SpecialFunctions package an important tool for dealing with special functions and orthogonal polynomials.