Trying to find a symbolic solution to an integral with Integrate:

Integrate[SinIntegral[x^11]/x^(7), {x, 0, Infinity}]

The solution found is:

-(11/72) (-1)^(5/22) (-1 + (-1)^(6/11)) Gamma[5/11]

The numerical value is computed by typing:

-(11/72) (-1)^(5/22) (-1 + (-1)^(6/11)) Gamma[5/11] // N

The numerical result is:

0.449925 -8.32667*10^-17 I

Another way of coding:

Limit[Integrate[SinIntegral[x^11]/x^(7), {x, 0, a}], a -> Infinity]

The result here is:

(Sqrt[\[Pi]] Gamma[5/22])/(12 2^(6/11) Gamma[14/11])

The numerical result here is:


I could assume that the complex result is nearly equal to zero, and the two results found are equal.

But when I use NIntegrate and type

NIntegrate[SinIntegral[x^11]/x^(7), {x, 0, Infinity}]

The value yielded is


The numerical value with NIntegrate is given without error notifications and is the same for increasing WorkingPrecision.

Why the different numerical results between Integrate and NIntegrate?


1 Answer 1


It's a highly oscillating integrand, so NIntegrate is likely to have trouble. (I guess that's why the error estimate is fooled -- the integrand doesn't change sign, tho.) This gets about 6 digits right:

NIntegrate[SinIntegral[x^11]/x^(7), {x, 0, Infinity}, WorkingPrecision -> 32]
(*  0.44992539271339646829381032087665  *)

This also gets close, much faster:

NIntegrate[SinIntegral[x^11]/x^7, {x, 0, ∞}, MinRecursion -> 4]
(*  0.449925  *)

Finally, turning off the Levin Rule, which seems to be used here, gives an OK result:

NIntegrate[SinIntegral[x^11]/x^(7), {x, 0, Infinity}, Method -> "GaussKronrodRule"]
(*  0.449922  *)

This can be made more precise by raising MinRecursion or adding division points to the iterator, e.g., {x, 0, 2, Infinity}, to capture the major contribution to the integral.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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