- #1

Hepth

Gold Member

- 448

- 39

## Main Question or Discussion Point

So I have to numerically integrate a function that is quite difficult. I could post it, but its long.

Regardless, there are 5 variables I am integrating over. The first is independent. The next 4 are subsequently dependent on the integration limits of the previous. Not a big deal.

something like

Integrate[F[x,y,z,t],{x,XCUT, 1},{y,0,Sqrt[1-x^2]},{z,0,1-x-y},{t,-1,1}]

but more.

Now, my problem comes in that XCUT is very close to 1. So say 0.977. That means that y only varies from 0 to something small, and z is also small. So its a very small slice of phase space that I'm integrating over.

What happens is my basic numerical integration outputs something like :

NIntegrate obtained 3.02466*10^-6 and 3.08509*10^-6 for the integral and error estimates.

So the error is appx the integral.

So what else can I do? Monte carlo seems to give me an answer without error, but seems to be heavily dependent on the maximum number of points I allow it to use.

Is there a way to do a HIGHLY ACCURATE numerical integration, where some of the limits might be close to poles. Time is not an issue, I can throw it on the cluster.

Pumping up WorkingPrecision doesn't seem to help much. Same with max recursion.

Regardless, there are 5 variables I am integrating over. The first is independent. The next 4 are subsequently dependent on the integration limits of the previous. Not a big deal.

something like

Integrate[F[x,y,z,t],{x,XCUT, 1},{y,0,Sqrt[1-x^2]},{z,0,1-x-y},{t,-1,1}]

but more.

Now, my problem comes in that XCUT is very close to 1. So say 0.977. That means that y only varies from 0 to something small, and z is also small. So its a very small slice of phase space that I'm integrating over.

What happens is my basic numerical integration outputs something like :

NIntegrate obtained 3.02466*10^-6 and 3.08509*10^-6 for the integral and error estimates.

So the error is appx the integral.

So what else can I do? Monte carlo seems to give me an answer without error, but seems to be heavily dependent on the maximum number of points I allow it to use.

Is there a way to do a HIGHLY ACCURATE numerical integration, where some of the limits might be close to poles. Time is not an issue, I can throw it on the cluster.

Pumping up WorkingPrecision doesn't seem to help much. Same with max recursion.