# Mathematica gives wrong answer for an integral

Bug introduced in 9.0 or earlier, persisting through 13.2 or later

When I execute the following,

Integrate[ Exp[-w^2 + I w^3], {w, -∞, ∞}]


I get

(2 E^(2/27) BesselK[1/3, 2/27])/(3 Sqrt[3])


which agrees with the result obtained from NIntegrate, which is 1.38811.
However, when I execute

Integrate[ Exp[ -a w^2 + b I w^3], {w, -∞, ∞}]


I get

ConditionalExpression[ 0, b ∈ Reals && Re[a] > 0]


which evaluates to 0 when a = 1 and b = 1. This is obviously wrong. The integral itself has no convergence issues, as the integrand is simply a Gaussian multiplied by a modulus-one third-order chirp factor, which clearly converges when integrated over the real line.
Why does Mathematica give an incorrect answer for the second integral?

We get correct results if we act ComplexExpand on the integrand

ComplexExpand @ Exp[-a w^2 + b I w^3]

E^(-a w^2) Cos[b w^3] + I E^(-a w^2) Sin[b w^3]


1.

Integrate[ ComplexExpand @ Exp[-a w^2 + b I w^3], {w, -Infinity, Infinity}]

ConditionalExpression[
(2 a E^((2 a^3)/(27 b^2)) BesselK[1/3, (2 a^3)/(27 b^2)])/( 3 Sqrt[3] Abs[b]),
b ∈ Reals && Re[a] > 0 ]


or make assumptions directly in Integrate :

2.

Integrate[ Exp[ -a w^2 + b I w^3], {w, -Infinity, Infinity},
Assumptions -> a ∈ Reals]

ConditionalExpression[
(2a E^((2 a^3)/(27 b^2)) BesselK[1/3, (2 a^3)/(27 b^2)])/( 3 Sqrt[3] Abs[b]),
b ∈ Reals && a > 0 ]


We could assume this condition b ∈ Reals && a > 0 (then it is automatically assumed that a is real) in Integrate to get rid of ConditionalExpression :

3.

Integrate[ Exp[-a w^2 + b I w^3], {w, -Infinity, Infinity},
Assumptions -> { b ∈ Reals, a > 0} ]

(2 a E^((2 a^3)/(27 b^2)) BesselK[1/3, (2 a^3)/(27 b^2)])/( 3 Sqrt[3] Abs[b])


There are many similar problematic issues with Integrate. This problem was also in ver. 7 but there appeared new ones quite similar in ver. 8. Perhaps the reason is that ConditionalExpression (a new function in Mathematica 8) is not perfectly integrated so far with the rest of the system. Conditional expressions are connected to assumptions imposed on a given expressions and they are ubiquitous when we deal with integrals. Above we had a correct result after imposing a proper assumption. However you can find a bit opposite issue to certain extent. Look e.g. at this example :

4.

Integrate[ Exp[-a] Sin[2 w] (b^2 + b*Cos[w] + a Sin[w]), {w, 0, 2 Pi}]
Integrate[ Exp[-a] Sin[2 w] (b^2 + b*Cos[w] + a Sin[w]), {w, 0, 2 Pi},
Assumptions -> a > 0]

0
8/3 Sqrt[a^2 + b^2] E^-a


As one can see, the same function integrated over the same interval gives two different results if an assumption was made (0 is the correct result). It is even more bizarre since we can add even an assumption having nothing to do with the integrand, e.g. Assumptions -> x > 0.

My supposition that there is something wrong with ConditionalExpression and Assumptions (as well as $Assumptions etc.) is more resonable since the example 4 did not casue any errors in Mathematica 7. As it was observed by b.gatessucks the integral without assumption returns the result as the integrand would be only I Exp[-a w^2] Sin[b w^3] instead of the full exponent Exp[-a w^2 + b I w^3]. Therefore we have two quite analogical expressions (3 and 4) which are evaluated correctly or not depending on whether assumptions are imposed or not (in the former case assumptions help to get the correct result in the latter case they cause the result is wrong). These issues are certainly bugs. Another way to get the correct result is to use a bit of insight: if one expands the imaginary exponential into$\cos$and$\sin$then the term with$\sin\$ gives zero when integrated due the symmetry (odd function integrated over symmetric domain).

Check :

Integrate[ Exp[-a w^2] Sin[b w^3], {w, -∞, ∞}]

ConditionalExpression[0, b ∈ Reals && Re[a] >= 0]


The original integral is then :

Integrate[ Exp[- a w^2] Cos[b w^3], {w, -∞, ∞}]

ConditionalExpression[
(2 a E^((2 a^3)/(27 b^2)) BesselK[1/3, (2 a^3)/(27 b^2)])/(3 Sqrt[3] Abs[b]),
b ∈ Reals && Re[a] > 0]


Use assumptions

In[6]:= Assuming[Element[{a,b},Reals],
Integrate[Exp[-a w^2+b I w^3],{w,-Infinity,Infinity}]]/.{a->1,b->1}

Out[6]= (2 E^(2/27) BesselK[1/3,2/27])/(3 Sqrt[3])


which is the same as

In[8]:= Integrate[Exp[-w^2+I w^3],{w,-Infinity,Infinity}]

Out[8]= (2 E^(2/27) BesselK[1/3,2/27])/(3 Sqrt[3])

• Thanks, that seems to work. However, it still doesn't change the fact that Mathematica gives an incorrect answer in the second integral, despite its claim in the ConditionalExpression[] that the answer is valid for real "a" and "b".
– PJR
Commented Jul 10, 2012 at 19:17