Basis#

Rountines for defining the index set associated with multivariate polynomials.

class equadratures.basis.Basis(basis_type, orders=None, level=None, growth_rule=None, q=None)[source]#

Basis class constructor.

Parameters
  • basis_type (str) – The type of index set to be used. Options include: univariate, total-order, tensor-grid, sparse-grid, hyperbolic-basis [1] and euclidean-degree [2]; all basis are isotropic.

  • orders (list, optional) – List of integers corresponding to the highest polynomial order in each direction.

  • growth_rule (str, optional) – The type of growth rule associated with sparse grids. Options include: linear and exponential. This input is only required when using a sparse grid.

  • q (float, optional) – The q parameter is used to control the number of basis terms used in a hyperbolic basis (see [1]). Varies between 0.0 to 1.0. A value of 1.0 yields a total order basis.

Examples

>>> # Total order basis
>>> mybasis = eq.Basis('total-order', orders=[3,3,3])
>>> # Euclidean degree basis
>>> mybasis2 = eq.Basis('euclidean-degree', orders=[2,2])
>>> # Sparse grid basis
>>> mybasis3 = eq.Basis('sparse-grid', growth_rule='linear', level=3)

References

  1. Blatman, G., Sudret, B., (2011) Adaptive Sparse Polynomial Chaos Expansion Based on Least Angle Regression. Journal of Computational Physics, 230(6), 2345-2367.

  2. Trefethen, L., (2017) Multivariate Polynomial Approximation in the Hypercube. Proceedings of the American Mathematical Society, 145(11), 4837-4844. Pre-print.

get_basis()[source]#

Gets the index set elements for the Basis object.

Returns

Elements associated with the multi-index set. For total-order, tensor-grid, hyperbolic-basis, hyperbolic-basis and euclidean-degree these correspond to the multi-index set elements within the set. For a sparse-grid the output will comprise of three arguments: (i) list of tensor grid orders (anisotropic), (ii) the positive and negative weights, and (iii) the individual sparse grid multi-index elements.

Return type

numpy.ndarray

Raises

ValueError – invalid value for basis_type!

get_cardinality()[source]#

Returns the number of elements of an index set.

Returns

The number of multi-index elements of the basis.

Return type

int

get_elements()[source]#

Returns the elements of an index set.

Returns

The multi-index elements of the basis.

Return type

numpy.ndarray

plot_index_set(ax=None, uncertainty=True, output_variances=None, number_of_points=200, show=True)[source]#

Plot the index set. See plot_index_set() for full description.

prune(number_of_elements_to_delete)[source]#

Prunes down the number of elements in an index set.

Parameters

number_of_elements_to_delete (int) – The number of multi-indices the user would like to delete.

Raises

ValueError – In Basis() –> prune(): Number of elements to be deleted must be greater than the total number of elements

set_orders(orders)[source]#

Sets the highest order in each direction of the basis.

Parameters

orders (list) – The highest polynomial order along each dimension.

Raises

ValueError – Basis __init__: invalid value for basis_type!

sort()[source]#

Routine that sorts a multi-index in ascending order based on the total orders. The constructor by default calls this function.