Cubature of Singular Integrand

?quadgk provides as output

!!! note Only one-dimensional integrals are provided by this function. For multi-dimensional integration (cubature), there are many different algorithms (often much better than simple nested 1d integrals) and the optimal choice tends to be very problem-dependent. See the Julia external-package listing for available algorithms for multidimensional integration or other specialized tasks (such as integrals of highly oscillatory or singular functions).

What are currently good choices for singular integrands in 3 variables?


HCubature.jl may help

1 Like

I took the liberty of renaming this topic to better summarize the question being asked.

1 Like

See also the recent thread: Numerical integration over 3D domain of vector-valued function

You can use HCubature.jl, Cubature.jl, nested quadgk calls (made more efficient by IteratedIntegration.jl), MeshIntegrals.jl, Cuba.jl, or explicit tensor products of fixed-order 1d quadrature rules (which has the tradeoff off not being adaptive, but for smooth integrands can be very efficient), for example.

As discussed in e.g. the linked thread, if you have a singularity in you integrand, then if at all possible you want to do a transformation that removes the singularity (or choose a quadrature rule that builds that singularity in).