0

I have a particular Cauchy Principal Value integral that I need to numerically solve for my thesis research. It is the following $$ \int_{-1}^{1}dx\frac{\mathbf{p}^{2}+\mathbf{k}^2-2|\mathbf{p}||\mathbf{k}|x}{x-x_{0}} $$ where $x_{0}=[\mathbf{p}^2 +\mathbf{k}^2 +m_{\pi}^2 -(p_{0}-k_{0})^2]/(2|\mathbf{p}||\mathbf{k}|)$

I have tried the usual integration code, with the PrincipalValue command

y = (p^2 + k^2 + m^2 -(p_0 - k_0)^2)/(2*p*k);
Integrate[(p^2 + k^2 - 2*p*k*x)/(x - y), {x, -1, 1}, PrincipalVale -> True]

When I tried to execute this, the answer simply doesn't come despite waiting for several minutes. Can anyone tell me what is wrong with this and what is the proper way to evaluate this integral?

m_goldberg
  • 107,779
  • 16
  • 103
  • 257
Judas503
  • 33
  • 7
  • 1
    There are errors in your code: You cannot write p_0 as in $\TeX$. This should be rewritten as p0 and k0. And even then, it might take some time to integrate. And: You seem to have left out the absolutes from your input equation. Why is that? – Jinxed Mar 21 '15 at 15:31
  • When using Integrate, it's best to keep the integrand as simple as possible. By defining y before Integrate, you make it unnecessarily complicated. Do Clear[y] before integrating. Then define y afterwards. – Jens Mar 21 '15 at 16:31

1 Answers1

2

If you use:

x0 = (p^2 + k^2 + m^2 - (p0 - k0)^2)/(2 p k);
f[x_] := (p^2 + k^2 - 2 p k x)/(x - x0);
res=Integrate[f[x], {x, -1, 1}, PrincipalValue->True]

you will presented with a result within a few minutes' time, however, there are lots of conditions spilled out to be fulfilled, which I left out here for clarity:

-4 k p - (k0^2 - m^2 - 2 k0 p0 + p0^2) Log[(
k^2 - k0^2 + m^2 + p^2 + 2 k0 p0 - p0^2)/(
k p)] + (k0^2 - m^2 - 2 k0 p0 + p0^2) Log[-((
k^2 - k0^2 + m^2 - 2 k p + p^2 + 2 k0 p0 - p0^2)/(k p))] - 
k0^2 Log[(k^2 - k0^2 + m^2 + 2 k p + p^2 + 2 k0 p0 - p0^2)/(
k^2 - k0^2 + m^2 + p^2 + 2 k0 p0 - p0^2)] + 
m^2 Log[(k^2 - k0^2 + m^2 + 2 k p + p^2 + 2 k0 p0 - p0^2)/(
k^2 - k0^2 + m^2 + p^2 + 2 k0 p0 - p0^2)] + 
2 k0 p0 Log[(k^2 - k0^2 + m^2 + 2 k p + p^2 + 2 k0 p0 - p0^2)/(
k^2 - k0^2 + m^2 + p^2 + 2 k0 p0 - p0^2)] - 
p0^2 Log[(k^2 - k0^2 + m^2 + 2 k p + p^2 + 2 k0 p0 - p0^2)/(
k^2 - k0^2 + m^2 + p^2 + 2 k0 p0 - p0^2)]

You might want to apply Refine[res, {k, k0, p, p0, m} \[Element] Reals], if your constants are actually real.


Note, that I replaced your p_0, k_0 with p0 and k0, since in Mathematica the underbrace represents a placeholder within a matching pattern and may not be part of an ordinary symbol. Maybe this collection might give you some additional advice.

Jinxed
  • 3,753
  • 10
  • 24
  • I know not to use "p_0". I only wrote it this way because while writing the code in Mathematica, I actually use Ctrl + _ to make a subscript. I did find the result after waiting for several minutes. Thanks – Judas503 Mar 28 '15 at 11:36
  • @Judas503: You should also not use subscripts, since the result is not a Mathematica symbol, but a construct based on the built-in Subscript. Use FullForm on such a subscripted value to see the effect. Such constructs behave very differently from ordinary variables and often lead to infinite recursion etc. My advice: Don't use them, unless you exactly know what you are doing. – Jinxed Mar 28 '15 at 12:47