I am computing the following integrals by numerical integration and this takes a lot of time, although I'm sure there is a general closed-form formula but I can't find it.

Let $t$ be a vector of $\mathbb R_{+}^{d}$. For any integer $d \ge 1$, define $K_d$ as a convex subset of $\mathbb R^{d}$ by :

$$x \in K_d \iff \forall\, j \in {1,..,d}, \;x_j \ge 0 \text{ and }\sum\limits_{j=1}^d t_j x_j \le 1$$

I think $K_d$ is usually called a simplex, but I am not sure.

Let now $i$ be a vector of integers in $\mathbb{N}^{d}$, and consider the integral :

$$I_{i}^{d} = \int\limits_{K_{d}} \;\;\prod_{j=1}^{d} x_j^{i_j} \;\;\partial x_1,...,\partial x_d$$

Can we compute an expression for $I_{i}^{d}$? Maybe some recursion on $d$ or on $i$ can be found?


I founded a paper that solves the problem, Lasserre - Simple formula for integration of polynomials on a simplex. it gives a formula a little more general, that reduces to the following :

$$\text{If and only if t_j = 1 for all j, }I_{i}^{d} = \frac{\prod\limits_{j=1}^{d} i_j}{(d+\lvert i \lvert)!}$$

Then, as a comment showed, generalisation can be done via

$$I_i^d(t) = \bigl(\prod_{j = 1}^d t_j^{-(i_j + 1)}\bigr)I_i^d(1)$$

  • 1
    $\begingroup$ I think that we have $I_i^d = \int_0^{1/t_d} x_d^{i_d}(1 - t_d x_d)^{\sum_{j = 1}^{d - 1} i_j}I_i^{d - 1}\mathrm dx_d$, but, if not that, then something very like it. $\endgroup$ – LSpice Sep 17 at 15:42
  • 1
    $\begingroup$ Nevermind, there is a formula there for exactly that : arxiv.org/pdf/1908.06736.pdf Thanks anyway ! $\endgroup$ – lrnv Sep 17 at 15:58
  • 1
    $\begingroup$ Glad you found it. You might consider posting it as an answer, if it totally addresses your question. \\ Your arXiv link, de-PDFd (and with the pun in its title unfurled for us to appreciate): Lasserre - Simple formula for integration of polynomials on a simplex. $\endgroup$ – LSpice Sep 17 at 17:19
  • $\begingroup$ Actualy i'm still stuck on the change of variables... I'll Edit, and maybe you could help ? $\endgroup$ – lrnv Sep 17 at 19:25
  • 1
    $\begingroup$ I think your last line should be $I_i^d(t) = \bigl(\prod_{j = 1}^d t_j^{-(i_j + 1)}\bigr)I_i^d(1)$. $\endgroup$ – LSpice Sep 18 at 17:10

If $\Sigma_t=\{x_i \geq 0: x_1+\cdots +x_d=t\}$and $d\sigma_t$ is its surface measure, then $I_t=\int_{\Sigma_t}\prod_{i=1}^d x_i^{\alpha_i}\, d\sigma_t=t^{|\alpha|+d-1}I_1$ (change variable $x_i=ty_i$). Then for $\alpha_i>-1$ $$ \prod_{i=1}^d \Gamma (\alpha_i+1)=\int_{[0,\infty[^d} \prod_{i=1}^d x_i^{\alpha_i} e^{-(x_1+\cdots +x_d)}dx=\int_0^\infty \frac{e^{-t}}{\sqrt n} I_tdt=I_1\int_0^\infty t^{|\alpha|+d-1}\frac{e^{-t}}{\sqrt n} dt. $$ This gives $I_1=\frac{\sqrt{n} \prod_{i=1}^d \Gamma (\alpha_i+1)}{\Gamma (|\alpha|+d)}$ and $$\int_{\{x_i \geq 0, x_1+\cdots +x_d \leq 1\}} \prod_{i=1}^d x_i^{\alpha_i}dx=\int_0^1 \frac{dt}{\sqrt n}I_t=\frac{\prod_{i=1}^d \Gamma (\alpha_i+1)}{\Gamma (|\alpha|+d+1)}.$$

| cite | improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.