Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

There is a rather simple integral ($K_0$ is the 0-th order MacDonald function) $$\int_0^\infty e^{-x \cosh\xi}\, d\xi = K_0(x)$$ which mathematica cannot solve. This even though the documentation claims that Integrate can give results in terms of many special functions. In fact it can solve the integral obtained by substituting $r=\cosh \xi$, $$\int_1^\infty \frac{e^{-x r}}{\sqrt{r^2-1}}\,dr=K_0(x).$$ In fact it also failed in solving the more general integral $$\int_0^\infty e^{-x \cosh\xi} \cosh(\alpha \xi)\, d\xi = K_\alpha(x).$$

I am using "8.0 for Mac OS X x86 (64-bit) (October 5, 2011)". Are there more recent or older versions of Mathematica which can solve this class of integrals?


I want to stress that this is not an arbitrary integral but can be thought of as a definition of $K_0$ (the corresponding integral $\int_0^{2\pi} \!e^{i x \cos \xi}\,d\xi$ for $J_0$ mathematica handles very well). I am just curious how it can happen that a system as developed as Mathematica cannot handle this "elementary" integral.

Here is the Mathematica code for those who want to test:

Integrate[Exp[-x Cosh[ξ]],{ξ,0,Infinity}]

Now I found a related integral which indeed is a bug in mathematica. If you try to evaluate ($x \in \mathbb{R}$) $$\int_0^\infty \cos(x \sinh \xi)\,d\xi = K_0(|x|)$$ then Mathematica claims that the integral diverges.

share|improve this question
The integration is with respect to \[Xi] – b.gatessucks Apr 25 '12 at 8:57
Please include the MMA code for the rest of us to test easily... – tkott Apr 25 '12 at 10:05
@Artes: However this is not an example of Integrate behaving improperly, but an example of Integrate not being able to calculate a given integral. Which may be unfortunate, but as long as it doesn't give an incorrect result, is neither improper behaviour nor a bug. – celtschk Apr 25 '12 at 10:31
@Artes Integrate is one of the most difficult to get right functions, especially when it comes to definite integration. You'll find similar problems in other systems as well. – Szabolcs Apr 25 '12 at 13:09
Send in this integral as a suggestion to wolfram technical support. The email is Let then know you are suggesting that this integral should evaluate to the value you suggested here. – Searke Apr 25 '12 at 14:52
up vote 14 down vote accepted

An experimental internal function Integrate`InverseIntegrate helps here, although it's intended more for integrands involving logs. This is what it returns in the development version:

Integrate`InverseIntegrate[Exp[-x Cosh[t]], {t, 0, Infinity}, Assumptions -> Re[x] > 0]
(*  BesselK[0, x]  *)
share|improve this answer
This code returns $Failed on my machine (version 8.0.4, Windows 7). – Verbeia Jun 13 '12 at 6:28
Sorry, I should have tested it. This is what it returns in the development version. In[1]:= Integrate`InverseIntegrate[Exp[-x Cosh[t]], {t, 0, Infinity}, Assumptions -> Re[x] > 0] Out[1]= BesselK[0, x] – Bhuvanesh Jun 20 '12 at 21:03
Could you tell me how could I find the file related to "Integrate`InverseIntegrate"? – WateSoyan Apr 12 '15 at 12:58
Integrate`InverseIntegrate is included as part of Mathematica versions 9.0+. It is not possible to load a file and make it work in earlier versions. – Bhuvanesh Apr 14 '15 at 19:55

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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