QuadratureProblem

class probnum.problems.QuadratureProblem(fun, measure, solution)

Bases: object

Numerical computation of an integral.

Compute the integral

\[\int_\Omega f(x) \, \text{d} \mu(x)\]

for a function \(f: \Omega \rightarrow \mathbb{R}\) w.r.t. the measure \(\mu\).

Parameters:
  • fun (Callable[[np.ndarray], np.ndarray]) – Function to be integrated. It needs to accept a shape=(n_eval, input_dim) np.ndarray and return a shape=(n_eval,) np.ndarray.

  • measure (quad.integration_measures.IntegrationMeasure) – The integration measure.

  • solution (Optional[Union[float, np.ndarray, randvars.RandomVariable]]) – Analytic value of the integral or precise numerical solution. Used for testing and benchmarking.

Examples

>>> import numpy as np
>>> from probnum.quad.integration_measures import LebesgueMeasure
>>>
>>> def fun(x):
...     return np.linalg.norm(x, axis=1)**2
>>>
>>> measure1d = LebesgueMeasure(domain=(0, 1), input_dim=1)
>>> qp1d = QuadratureProblem(fun, measure=measure1d, solution=1/3)
>>> np.round(qp1d.fun(np.array([[0.2]]))[0], 2)
0.04
>>> measure2d = LebesgueMeasure(domain=(0, 1), input_dim=2)
>>> qp2d = QuadratureProblem(fun, measure=measure2d, solution=None)
>>> np.round(qp2d.fun(np.array([[0.2, 0.2]]))[0], 2)
0.08