hermite_product_polynomial


hermite_product_polynomial, an Octave which defines a Hermite product polynomial (HePP), creating a multivariate polynomial as the product of univariate Hermite polynomials.

The Hermite polynomials are a polynomial sequence He(i,x), with polynomial I having degree I.

The first few Hermite polynomials He(i,x) are

        0: 1
        1: x
        2: x^2 -  1
        3: x^3 -  3 x
        4: x^4 -  6 x^2 + 3
        5: x^5 - 10 x^3 + 15 x
      

A Hermite product polynomial may be defined in a space of M dimensions by choosing M indices. To evaluate the polynomial at a point X, compute the product of the corresponding Hermite polynomials, with each the I-th polynomial evaluated at the I-th coordinate:

        He((I1,I2,...IM),X) = He(1,X(1)) * He(2,X(2)) * ... * He(M,X(M)).
      

Families of polynomials which are formed in this way can have useful properties for interpolation, derivable from the properties of the 1D family.

While it is useful to generate a Hermite product polynomial from its index set, and it is easy to evaluate it directly, the sum of two Hermite product polynomials cannot be reduced to a single Hermite product polynomial. Thus, it may be useful to generate the Hermite product polynomial from its indices, but then to convert it to a standard polynomial form.

The representation of arbitrary multivariate polynomials can be complicated. In this library, we have chosen a representation involving the spatial dimension M, and three pieces of data, O, C and E.

The exponent indexing is done in a natural way, suggested by the following indexing for the case M = 2:

        1: x^0 y^0  
        2: x^0 y^1
        3: x^1 y^0
        4: x^0 y^2
        5: x^1 y^1
        6; x^2 y^0
        7: x^0 y^3
        8: x^1 y^2
        9: x^2 y^1
       10: x^3 y^0
       ...
      

Licensing:

The computer code and data files described and made available on this web page are distributed under the MIT license

Languages:

hermite_product_polynomial is available in a C version and a C++ version and a Fortran90 version and a MATLAB version and an Octave version.

Related Data and Programs:

hermite_product_polynomial_test

combo, an Octave which includes routines for ranking, unranking, enumerating and randomly selecting balanced sequences, cycles, graphs, Gray codes, subsets, partitions, permutations, restricted growth functions, Pruefer codes and trees.

hermite_polynomial, an Octave which evaluates the Hermite polynomial and associated functions.

legendre_product_polynomial, an Octave which defines Legendre product polynomials, creating a multivariate polynomial as the product of univariate Legendre polynomials.

monomial, an Octave which enumerates, lists, ranks, unranks and randomizes multivariate monomials in a space of M dimensions, with total degree less than N, equal to N, or lying within a given range.

polpak, an Octave which evaluates a variety of mathematical functions, including Chebyshev, Gegenbauer, Hermite, Jacobi, Laguerre, Legendre polynomials, and the Collatz sequence.

polynomial, an Octave which adds, multiplies, differentiates, evaluates and prints multivariate polynomials in a space of M dimensions.

subset, an Octave which enumerates, generates, ranks and unranks combinatorial objects including combinations, compositions, Gray codes, index sets, partitions, permutations, subsets, and Young tables.

Source Code:


Last revised on 11 January 2021.