MathGroup Archive 2003

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: PrincipalValue of Integral

  • To: mathgroup at
  • Subject: [mg44727] Re: PrincipalValue of Integral
  • From: "David W. Cantrell" <DWCantrell at>
  • Date: Sat, 22 Nov 2003 02:17:20 -0500 (EST)
  • References: <bphtm6$1m9$>
  • Sender: owner-wri-mathgroup at

Andrzej Kozlowski <akoz at> wrote:
> I would like to add from that my reason for asking the question were
> simply curiosity if this concept really deserved to have a special name
> and position within Mathematica (as an option in Integrate), since
> mathematically it amounts to just simple taking of limits in a rather
> obvious way. Since Alain convinced me that it has significant
> applications my doubts have been resolved.

Now that your doubts concerning usefulness of the concept have been
resolved, I feel compelled to point out how limited Mathematica's
implementation of PrincipalValue actually is.

The primary statement in the documentation is "PrincipalValue is an option
for Integrate that specifies whether the Cauchy principal value should be
found for a definite integral." Of course, if Mathematica did that, I would
have no complaint. Let's look at some cases where PrincipalValue does not
give the principal value.

Integrate[1/x^3, {x, -1, 1}, PrincipalValue -> True] should give us 0,
rather than merely the statement that Integrate[1/x^3, {x, -1, 1}] doesn't
converge. (Of course, the latter is true. But it doesn't answer the
question which was asked.)

Later, the documentation states that "Setting PrincipalValue->True gives
finite answers for integrals that had single pole divergences with
PrincipalValue->False." Well, the example above had a single pole (of order
3), so we might think that PrincipalValue should have worked there. But in
fact, surely the documentation should have said "simple pole", rather than
"single pole". (Or are "simple" and "single" considered interchangeable in
this context? If so, I'm not aware of it.)

Note that PrincipalValue can work correctly when there is more than one
simple pole. For example, we have correctly

  Integrate[1/x + 1/(x - 1), {x, -1, 3}, PrincipalValue -> True]

Of course, rather than merely having the documentation changed to read
"simple" instead of "single", I'd far, far rather have PrincipalValue work
for poles of any order, just as the primary statement would lead us to

The other issue is that of doubly infinite integrals, a very important
class for which the principal value may be required. Mathematica should be
able to give the principal value in such cases. This discussion of
PrincipalValue started in the thread "Improper integral" when Jean-Claude
asked about
In that thread, it was shown how the user can, easily enough, obtain the
principal value by asking Mathematica for the obvious symmetric limit. But
if that's so easy, then Mathematica should be able to do that itself when
PrincipalValue is specified!

FWIW, there's a different way to help Mathematica get that principal value
-- using, of all things, PrincipalValue itself. Change the variable in
Integrate[x/(1+x^2),{x,-Infinity,Infinity},PrincipalValue->True] by letting
x = 1/y. In general, that change turns an integral of the form
Integrate[f(x),{x,-Infinity,Infinity}] into one of the form
Integrate[f(1/y)/y^2,{y,-Infinity,Infinity}]. We are very lucky in our case
that the resulting integral happens to have just a _simple_ pole.

 Integrate[1/(y*(y^2 + 1)), {y, -Infinity, Infinity}, PrincipalValue -> True]

David Cantrell

  • Prev by Date: Re: interpolation and plotting 3d data
  • Next by Date: Simplify needs ages to finish
  • Previous by thread: PrincipalValue of Integral
  • Next by thread: Mesh generation in 2D