I'm trying to perform the following integral (numerically)
And their behaviour is
where PV denotes principal Value.
In principle I don't know the functions $\rm{Im}(\alpha)$ and $\rm{Re}(\alpha)$, but I know their behaviour between $s=0$ and $s=2$. I just need to know if the equation (1) from above is correct. For that purpose I made my own function of $\rm{Im}(\alpha)$ that behaves like the figure shown (I called it $\alpha$ first)
alpha[s_] = rho[s] (0.12 E^-(0.35 s));
where
rho[s_] = Sqrt[1 - 4 m^2/s];
and
m = 0.13957;
Then I made an interpolation to the function (just to practice numerical integration with known points of a function)
Tab1 = Table[{s, alpha[s]}, {s, 4 m^2, 2, 0.001}];
im = Interpolation[Tab1] ;
Supposing that at this point everything is all right, I have some points of my function and I want to deal with the numerical integration (1) shown above.
I divided the two first terms of the $\rm{Re}(\alpha)$:
step = (2 - 0.14^2)/20;
si = Table[4 m ^2 + (i - 1) step, {i, 1, 21}];
ai = Table[{si[[i]], {0.520 + 0.902 si[[i]]}}, {i, 1, 21}];
and the integration part goes as follows:
bi =
NIntegrate[Table[im[s]/(s (s - si[[i]])), {i, 1, 21}], {s, 4 m^2, 2},
Method -> PrincipalValue]
Obiously this integration doesn't give the result I wanted because I have to specify in which points the denominator goes to zero (so it can apply the PV).
Here comes my question. This $bi$ diverges everytime $s=si$. How can I specify in my function these points? I tried using the option
Method -> {"PrincipalValue", "SingularPointsIntegrationRadius" -> }]
but it seems Mathematica 9 (the one I'm using) doesn't have this option. I also tried taking few points and specifying the singular points, but the function also diverges when $s$ tends to $si$ so it doesn't work either. Does someone have any idea how to do it?
P.S.: I don't want to specify what the variables mean because it's a much larger problem.
si
? Do you have a specific distance from the values ofsi
s
needs to get to for the function to diverge? Otherwise I'd sayExclusions -> Thread[si == s]
$\endgroup$