|
Monte Carlo Integration Library 1.0
High-performance Monte Carlo methods for numerical integration and optimization
|
Importance sampling Monte Carlo integrator. More...
#include <ISintegrator.hpp>
Public Member Functions | |
| ISMontecarloIntegrator (const mc::domains::IntegrationDomain< dim > &d) | |
| Construct an importance sampling integrator. | |
| double | integrate (const std::function< double(const mc::geom::Point< dim > &)> &f, int n_samples, const mc::proposals::Proposal< dim > &proposal, std::uint32_t seed) override |
| Compute the integral using importance sampling. | |
Public Member Functions inherited from mc::integrators::Integrator< dim > | |
| Integrator (const mc::domains::IntegrationDomain< dim > &d) | |
| Constructs an integrator for a specific domain. | |
| virtual | ~Integrator ()=default |
| Virtual destructor for proper polymorphic cleanup. | |
Additional Inherited Members | |
Protected Member Functions inherited from mc::integrators::Integrator< dim > | |
| std::vector< mc::geom::Point< dim > > | initializeRandomizer (int numbers) |
| Initializes random samples uniformly distributed in the domain. | |
Protected Attributes inherited from mc::integrators::Integrator< dim > | |
| const mc::domains::IntegrationDomain< dim > & | domain |
| Reference to the integration domain. | |
| std::vector< std::mt19937 > | randomizer |
| Per-thread random number generators. | |
Importance sampling Monte Carlo integrator.
| dim | Dimensionality of the integration domain. |
Computes the integral using importance sampling: ∫_Ω f(x) dx = ∫_Ω [f(x)/q(x)] · q(x) dx ≈ (1/N) ∑ᵢ [f(xᵢ)/q(xᵢ)]
where q(x) is a proposal distribution chosen to approximate f(x). This reduces variance compared to uniform sampling when q resembles f.
Definition at line 40 of file ISintegrator.hpp.
|
explicit |
Construct an importance sampling integrator.
| d | Reference to the integration domain. |
|
overridevirtual |
Compute the integral using importance sampling.
| f | Integrand function: ℝⁿ → ℝ. |
| n_samples | Number of samples drawn from the proposal. |
| proposal | Custom sampling distribution q(x). Should approximate f(x) to minimize variance. |
| seed | Random seed for reproducibility. |
Uses ISMeanEstimator to compute weighted average: (1/N) ∑ᵢ [f(xᵢ)/q(xᵢ)] where xᵢ ~ q.
Implements mc::integrators::Integrator< dim >.