- #1
Hepth
Gold Member
- 464
- 40
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.