Integration

Example:

import probpy as pp
import numpy as np

f = lambda x: -np.square(x[:, 0]) + np.square(x[:, 1])

lower_bound = np.array([0, 0])
upper_bound = np.array([4, 2])

proposal = pp.multivariate_normal.med(mu=np.zeros(2), sigma=np.eye(2) * 2)

result = pp.uniform_importance_sampling(size=100000,
                                        function=f,
                                        domain=(lower_bound, upper_bound),
                                        proposal=proposal)
probpy.integration.expected_value(size: int, function: typing.Callable[numpy.ndarray, numpy.ndarray], distribution: probpy.core.RandomVariable)[source]
Parameters:
  • size – samples to estimate expectation
  • function – function to estimate it with
  • distribution – expectation with respect to this distribution
Returns:

probpy.integration.uniform_importance_sampling(size: int, function: typing.Callable[numpy.ndarray, numpy.ndarray], domain: typing.Tuple[numpy.ndarray, numpy.ndarray], proposal: probpy.core.RandomVariable)[source]
Parameters:
  • size – samples to use in integral
  • function – function to integrate
  • domain – domain to integrate over
  • proposal – proposal distribution
Returns: