1
$\begingroup$

How does one do MC for integrand which has dirac-delta function like following:

$I=\int e^{-S(x)} \delta(f(x))dx$

where $x$ would be multi-dimensional, and hence this is a multi-dimensional integral over coordinates such as $x_1,x_2,x_3$ and so on.

I want to do importance sampling. I do have my sampling distribution $g(x)$ which is nice, and closely resembles $e^{-S(x)}$. My major problem is dealing with dirac-delta. I want to do it completely using MC. In other words, I don't want to integrate out dirac-delta analytically, and perform the rest of the integrals over $x_2,x_3$, etc. by MC. Rather, everything is supposed to be done numerically using MC. Does anyone have any idea how to deal with dirac-delta distribution in monte carlo sampling methods?

$\endgroup$
3
  • 2
    $\begingroup$ Why do you want to do it using Monte-Carlo? $\endgroup$
    – user14717
    Commented Jun 26, 2017 at 15:26
  • $\begingroup$ because it is multi-dimensional, and also the integrand has some poles. how does one avoid poles of integrand? I am thinking of rejecting the samples that create pole when doing MC sampling. $\endgroup$
    – t.jun
    Commented Jun 27, 2017 at 8:11
  • $\begingroup$ I don't think the integrand having poles is a good reason to do Monte Carlo, in fact it's a bad reason. The sampling will never hit the pole, nor will it be able to delineate its structure by coming very close to it in a sophisticated way, like (say) tanh-sinh quadrature does. $\endgroup$
    – user14717
    Commented Jun 27, 2017 at 16:18

2 Answers 2

3
$\begingroup$

Use the identity \begin{align*} \int_{\mathbb{R}^{n}}\exp(-S(\mathbf{x})) \delta(f(\mathbf{x})) \, \mathrm{d}\mathbf{x} = \int_{f^{-1}(0) \subset \mathbb{R}^{n-1}} \frac{\exp(-S(\mathbf{x})) }{|\nabla f(\mathbf{x})|} \, \mathrm{d}\mathbf{x} \end{align*} and then use Monte-Carlo on the surface integral. The difficulty will be accurate determination of the surface $f^{-1}(0)$.

Note that naive application of Monte-Carlo integration to an integrand with a delta-function will never work. You attempting to randomly sample a set with measure zero, so unless some finite-precision arithmetic works in your favor, the integral will always evaluate to zero.

$\endgroup$
2
$\begingroup$

One thought: the Dirac Delta is technically defined as the limit of a sequence of functions (like box functions or Gaussians). Just take one of these functions for your Dirac Delta and perform MC on that. That is, use

$$ \delta(x) \approx \frac{1}{n\sqrt{\pi}} e^{-(x/n)^2} $$

as an approximation to the Dirac Delta, for some suitably large $n$.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .