Hermite Polynomial Chaos Expansion for a Scalar ODE

PCE_ODE_HERMITE is a C++ library which defines and solves a time-dependent scalar exponential decay ODE with uncertain decay coefficient, using a polynomial chaos expansion, in terms of Hermite polynomials.

The deterministic equation is

        du/dt = - alpha * u,
        u(0) = u0
In the stochastic version, it is assumed that the decay coefficient ALPHA is a Gaussian random variable with mean value ALPHA_MU and variance ALPHA_SIGMA^2.

The exact expected value of the stochastic equation is known to be

        u(t) = u0 * exp ( t^2/2)
This should be matched by the first component of the polynomial chaos expansion.


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


PCE_ODE_HERMITE is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version.

Related Data and Programs:

BLACK_SCHOLES, a C++ library which implements some simple approaches to the Black-Scholes option valuation theory, by Desmond Higham.

HERMITE_POLYNOMIAL, a C++ library which evaluates the physicist's Hermite polynomial, the probabilist's Hermite polynomial, the Hermite function, and related functions.

PCE_BURGERS, a C++ program which defines and solves a version of the time-dependent viscous Burgers equation, with uncertain viscosity, using a polynomial chaos expansion in terms of Hermite polynomials, by Gianluca Iaccarino.

SDE, a C++ library which illustrates the properties of stochastic differential equations (SDE's), and common algorithms for their analysis, by Desmond Higham;

STOCHASTIC_RK, a C++ library which applies a Runge Kutta (RK) scheme to a stochastic differential equation.


  1. Roger Ghanem, Pol Spanos,
    Stochastic Finite Elements: A Spectral Approach,
    Revised Edition,
    Dover, 2003,
    ISBN: 0486428184,
    LC: TA347.F5.G56.
  2. Dongbin Xiu,
    Numerical Methods for Stochastic Computations: A Spectral Method Approach,
    Princeton, 2010,
    ISBN13: 978-0-691-14212-8,
    LC: QA274.23.X58.

Source Code:

Examples and Tests:

List of Routines:

You can go up one level to the C++ source codes.

Last modified on 18 March 2012.