In addition to Cubature.jl there is another Julia package that allows you to calculate multidimensional numerical integrals: Cuba.jl ( https://github.com/giordano/Cuba.jl ). It can be installed using the package manager:
Pkg.add("Cuba")
Full package documentation is available at https://cubajl.readthedocs.org (also in PDF version )
Disclaimer: I am the author of the package.
Cuba.jl is just a wrapper for Julia around the Cuban Library from Thomas Hahn and provides four independent algorithms for calculating the integrals: Vegas, Suave, Divonne, Kure.
The integral cos (x) in the region [0, 1] can be calculated using one of the following commands:
Vegas((x,f)->f[1]=cos(x[1]), 1, 1) Suave((x,f)->f[1]=cos(x[1]), 1, 1) Divonne((x,f)->f[1]=cos(x[1]), 1, 1) Cuhre((x,f)->f[1]=cos(x[1]), 1, 1)
As a more advanced example, the integral

where Ω = [0, 1] ³ and

can be calculated using the following version of the Julia script:
using Cuba function integrand(x, f) f[1] = sin(x[1])*cos(x[2])*exp(x[3]) f[2] = exp(-(x[1]^2 + x[2]^2 + x[3]^2)) f[3] = 1/(1 - x[1]*x[2]*x[3]) end result = Cuhre(integrand, 3, 3, epsabs=1e-12, epsrel=1e-10) answer = [(e-1)*(1-cos(1))*sin(1), (sqrt(pi)*erf(1)/2)^3, zeta(3)] for i = 1:3 println("Component $i") println(" Result of Cuba: ", result[1][i], " ± ", result[2][i]) println(" Exact result: ", answer[i]) println(" Actual error: ", abs(result[1][i] - answer[i])) end
which gives the next exit
Component 1 Result of Cuba: 0.6646696797813739 ± 1.0050367631018485e-13 Exact result: 0.6646696797813771 Actual error: 3.219646771412954e-15 Component 2 Result of Cuba: 0.4165383858806454 ± 2.932866749838454e-11 Exact result: 0.41653838588663805 Actual error: 5.9926508200192075e-12 Component 3 Result of Cuba: 1.2020569031649702 ± 1.1958522385908214e-10 Exact result: 1.2020569031595951 Actual error: 5.375033751420233e-12