2

This is my first time using Mathematica for the purpose of solving complex integrals. I have to compute few complex integrals which have many coefficients. For example, $$\int_0^\infty \frac{k^2\, (k^2 + p^2)^{1/2}}{(k^2 + u^2)^2\, (2\, k^2 + 2\,p^2 + m\,(k^2 + p^2)^{1/2}\,)}\, dk $$

When I am trying to calculate it with Integrate, the result is always with a ConditionalExpression with some real and imaginary conditions. I know that there is a solution to this integral because my professor calculated it some time ago and I have to repeat it.

I also have few principal value integrals to calculate. But the results of them are even more complex.

Could you give me some advice on what should I do to get rid of the conditions?

m_goldberg
  • 107,779
  • 16
  • 103
  • 257
filipmor
  • 31
  • 2

3 Answers3

2

This

Assuming[u>0 && m>-2,
  Integrate[k^2 Sqrt[k^2+p^2]/((k^2+u^2)^2 Sqrt[2 k^2+2 p^2+m (k^2+p^2)]),
    {k,0,Infinity}]]

instantly returns Pi/(4 Sqrt[2+m] u).

If you look at the arguments inside the Conditional and what I put inside my Assuming then you might see how this is done.

You can use slightly different assumptions and still eliminate the conditional.

Bill
  • 12,001
  • 12
  • 13
2
int = Integrate[
  k^2 Sqrt[k^2 + p^2]/((k^2 + u^2)^2 Sqrt[2 k^2 + 2 p^2 + m (k^2 + p^2)]), {k,
    0, Infinity}]

(*  ConditionalExpression[
   Pi/(4*Sqrt[2 + m]*u), 
   Re[u] > 0 && Re[m] > -2 && 
     Im[m] == 0]  *)

You can extract the desired result from the answer using Part

int[[1]]

(*  Pi/(4*Sqrt[2 + m]*u)  *)

As shown by @Bill, you can use assumptions consistent with the conditions given in the ConditionalExpression

Assuming[{m > -2, u > 0},
 Integrate[
  k^2 Sqrt[k^2 + p^2]/((k^2 + u^2)^2 Sqrt[2 k^2 + 2 p^2 + m (k^2 + p^2)]), {k,
    0, Infinity}]]

(*  Pi/(4*Sqrt[2 + m]*u)  *)

Or you can tell Mathematica to not generate conditions (EDIT: this has some risk as pointed out in the comment by @mattiav27)

Integrate[k^2 Sqrt[
    k^2 + p^2]/((k^2 + u^2)^2 Sqrt[2 k^2 + 2 p^2 + m (k^2 + p^2)]), {k, 0, 
  Infinity}, GenerateConditions -> False]

(*  (Pi*Sqrt[1/u^2])/(4*Sqrt[2 + m])  *)

Which may then need simplification with assumptions to arrive at the same end result

Simplify[%, u > 0]

(*  Pi/(4*Sqrt[2 + m]*u)  *)
Bob Hanlon
  • 157,611
  • 7
  • 77
  • 198
  • 2
    You should also say that using GenerateConditions->False might be dangerous: see this answer: http://mathematica.stackexchange.com/a/108578/8822 and also the documentation of Integrate. The problem is that it will "Generate a result without conditions that is valid only for some values* of parameters"* – mattiav27 Aug 08 '16 at 19:45
  • The canonical way to remove the ConditionalExpression is by using Normal (see docs on Normal). – QuantumDot Aug 11 '16 at 13:00
  • @QuantumDot - Thanks – Bob Hanlon Aug 11 '16 at 16:14
0

Thank you guys for help. However in your code, there was a small mistake in denominator. It should look like this:

Integrate[k^2 Sqrt[k^2 + p^2]/((k^2 + u^2)^2 (2 k^2 + 2 p^2 + m Sqrt[k^2 + p^2])), {k, 0, Infinity}, GenerateConditions -> False]

This makes calculations much longer. The result is really long with some signs that I don't fully understand. This is a part of result:

                                2    2
           2  2         I Sqrt[p  - u ]
    (2 I) m  p  Log[1 - ---------------] + 
                               u

                             2    2
           4         I Sqrt[p  - u ]
    (8 I) p  Log[1 - ---------------] + 
                            u

Do you know what that "I" means? I tried to find it in some library as a special function or constant but without success.

I also have a problem with functions containing logarithm:

int = Integrate[k Log[(Sqrt[k^2 + p^2]+k)/(Sqrt[k^2 +  p^2]-k)]/((k^2 + u^2)^2 (2 k^2 + 2 p^2 + m Sqrt[k^2 + p^2])), {k,0, Infinity}]

A computer that I am working on at my University simply don't want to give me the result probably because of some time limit. Is there a way to force Mathematica to compute the result in such a situation?

Thank you for help one more time. :)

filipmor
  • 31
  • 2