Polynomial approximations


Keywords
polynomial, chaos, effective, quadratures, approximations, gradients, approximation, effective-quadratures, interpolation, least-squares, matrix-factorization, polynomials, python
License
MIT
Install
pip install equadratures==10

Documentation

equadratures

equadratures is an open-source library for uncertainty quantification, machine learning, optimisation, numerical integration and dimension reduction -- all using orthogonal polynomials. It is particularly useful for models / problems where output quantities of interest are smooth and continuous; to this extent it has found widespread applications in computational engineering models (finite elements, computational fluid dynamics, etc). It is built on the latest research within these areas and has both deterministic and randomised algorithms.

Key words associated with this code: polynomial surrogates, polynomial chaos, polynomial variable projection, Gaussian quadrature, Clenshaw Curtis, polynomial least squares, compressed sensing, gradient-enhanced surrogates, supervised learning.

Code

The latest version of the code is v10 Baby Blue, released March 2022.

If you use pip you can install the code with:

pip install equadratures

or pip can be replaced with python -m pip, where python is the python version you wish to install equadratures for. Use of a virtual enviroment such as virtualenv or pyenv/pipenv is also encouraged. Alternatively you can click either on the Fork Code button or Clone, and install from your local version of the code.

For issues with the code, please do raise an issue on our Github page; do make sure to add the relevant bits of code and specifics on package version numbers. We welcome contributions and suggestions from both users and folks interested in developing the code further.

Our code is designed to require minimal dependencies; current package requirements include numpy, scipy and matplotlib.

If, and only if using the GraphPolys class, additional requirements would include the networkx, and torch modules.

Documentation, tutorials, Discourse

Code documentation and details on the syntax can be found here.

We've recently started a Discourse forum! Check it out here.

Code objectives

Specific goals of this code include:

  • probability distributions and orthogonal polynomials
  • supervised machine learning: regression and compressive sensing
  • numerical quadrature and high-dimensional sampling
  • transforms for correlated parameters
  • computing moments from models and data-sets
  • sensitivity analysis and Sobol' indices
  • data-driven dimension reduction
  • ridge approximations
  • surrogate-based design optimisation

Get in touch

Feel free to follow us via Twitter or email us at mail@equadratures.org.

Community guidelines

If you have contributions, questions, or feedback use either the Github repository, or get in touch. We welcome contributions to our code. In this respect, we follow the NumFOCUS code of conduct.

Acknowledgments

This work was supported by wave 1 of The UKRI Strategic Priorities Fund under the EPSRC grant EP/T001569/1, particularly the Digital Twins in Aeronautics theme within that grant, and The Alan Turing Institute.