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] andeuclidean-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
andexponential
. 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
Blatman, G., Sudret, B., (2011) Adaptive Sparse Polynomial Chaos Expansion Based on Least Angle Regression. Journal of Computational Physics, 230(6), 2345-2367.
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
andeuclidean-degree
these correspond to the multi-index set elements within the set. For asparse-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
- 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
- get_elements()[source]¶
Returns the elements of an index set.
- Returns
The multi-index elements of the basis.
- Return type
- 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!