Infer the solution of the uni- or multivariate integral $$\int_\Omega f(x) d \mu(x)$$ on a hyper-rectangle $$\Omega = [a_1, b_1] \times \cdots \times [a_D, b_D]$$.

Bayesian quadrature (BQ) infers integrals of the form

$F = \int_\Omega f(x) d \mu(x),$

of a function $$f:\mathbb{R}^D \mapsto \mathbb{R}$$ integrated on the domain $$\Omega \subset \mathbb{R}^D$$ against a measure $$\mu: \mathbb{R}^D \mapsto \mathbb{R}$$.

Bayesian quadrature methods return a probability distribution over the solution $$F$$ with uncertainty arising from finite computation (here a finite number of function evaluations). They start out with a random process encoding the prior belief about the function $$f$$ to be integrated. Conditioned on either existing or acquired function evaluations according to a policy, they update the belief on $$f$$, which is translated into a posterior measure over the integral $$F$$. See Briol et al. 1 for a review on Bayesian quadrature.

Parameters
Return type
Returns

• integral – The integral of func on the domain.

• info – Information on the performance of the method.

References

1

Briol, F.-X., et al., Probabilistic integration: A role in statistical computation?, Statistical Science 34.1, 2019, 1-22, 2019

Examples

>>> import numpy as np

>>> input_dim = 1
>>> domain = (0, 1)
>>> def f(x):
...     return x
>>> F, info = bayesquad(fun=f, input_dim=input_dim, domain=domain)
>>> print(F.mean)
0.5