Bug introduced in 8.0.4 or earlier and persisting through 11.3
In the course of developing an alternative solution for question 127301,
With,
$Version (* "11.0.0 for Microsoft Windows (64-bit) (July 28, 2016)" *) I attempted to perform the integral,
um = -(2/3) - 2/(3 (-1 + u)) - (2 u)/3 + u^2/3; up = -(10/3) - 2/(3 (-1 + u)) + (8 u)/3 - u^2/3; sv = Piecewise[{{um, u <= 1}, {up, u > 1}}]; Integrate[sv, {u, 0, 2}, PrincipalValue -> True] but received the error message,
Integrate: Integral of ... does not converge on {0,2}.
Separating the term, -(2/(3 (-1 + u))), does not help.
sv1 = Piecewise[{{um + 2/(3 (-1 + u)), u <= 1}, {up + 2/(3 (-1 + u)), u > 1}}]; Integrate[sv1 - 2/(3 (-1 + u)), {u, 0, 2}, PrincipalValue -> True] yielding the same error message. Yet,
Integrate[sv1, {u, 0, 2}] - Integrate[2/(3 (-1 + u)), {u, 0, 2}, PrincipalValue -> True] (* -1 *) does work. (The second integral equals 0, incidentally.) Is this a bug, or am I missing something? Thanks.
(Note that 10.4.1 produces the same results.)
Addendum: Workaround
Slightly shifting the Piecewise boundary at u = 1 so that the singular point lies within one or the other segment gives an accurate result. For instance, redefining sv as
sv = Piecewise[{{um, u <= 1 + 10^-10}, {up, u > 1 + 10^-10}}]; allows sv to be integrated by Integrate.
Integrate[sv, {u, 0, 2}, PrincipalValue -> True] // FullSimplify (* -(4500000000000000000044999999999/4500000000000000000000000000000) *) which is 1. to 20 significant figures. That this occurs is consistent with the suggestion by MichaelE2 that Integrate integrates each segment of Piecewise independently and, therefore, cannot handle singularities at the boundary between two segments. Nonetheless, I believe that it should be able to. Failing that, the documentation should describe this limitation.
$Versioninformation. $\endgroup$PiecewiseExpandis applied to the integrand, the integral of the resultingPiecewisefunction is broken up according to the pieces, and the principal value of each piece is computed. And the integrals of the pieces diverge. FWIW,GenerateConditions -> Falsegives the right answer plus half the contribution of the pole atu == 1. $\endgroup$1.001(for instance) gives a reasonable result. ButIntegrateshould recognize a singularity at the boundary between two pieces ofPiecewiseand withPrincipalValue -> Trueattempt to match it with a singularity at the other side of the boundary (obtained usingSeries, perhaps). If it cannot, the documentation should say so. $\endgroup$Re@Integrate[sv, {u, 0, 2}, PrincipalValue -> True, GenerateConditions -> False]seems nearly satisfactory to me, given the pole makes a predictably purely imaginary contribution; but maybe my standards for symbolic integration are low. :) $\endgroup$