Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2007
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2007

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

Search the Archive

Re: Re: Definite Integration in Mathematica

  • To: mathgroup at smc.vnet.net
  • Subject: [mg74492] Re: [mg74454] Re: Definite Integration in Mathematica
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Fri, 23 Mar 2007 19:03:51 -0500 (EST)
  • References: <etqo3f$10i$1@smc.vnet.net> <200703220607.BAA16771@smc.vnet.net>

Here is, I think,  a less confusing explanation than the one I sent  
earlier (the main point is the same).

I agree that Adamchik's phrasing is very unclear and confusing. It  
seems to me that to understand his intention it helps to consider the  
situation in the complex plane.

First of all, consider the integrand  f[x_]:=(x^2 + 2*x + 4)/(x^4 -  
7*x^2 + 2*x + 17).  It is a meromorphic function in the complex  
plane. If this were an analytic function than it would have an  
analytic anti-derivative, but as it is not, it can only have an  
analytic anti-derivative in any simply connected region in which it  
is analytic.  The integrand f has poles at 2 conjugate pairs of  
points in the complex plane. If you join these points by vertical  
lines and remove the lines from the plane,  you will divide the plane  
into three open simply connected regions. In each of these regions  
the function will have some analytic anti-derivative, and if you knew  
it you would be able to use the Newton-Leibniz formula in this  
region. So if you consider the anti-derivative given by Mathematica

FullSimplify[ArcTan[(x + 1)/
     (4 - x^2)]]


ArcTan[(x + 1)/(4 - x^2)]


You can use the Newton-Leibniz formula in any region in which the  
anti-derivative is analytic. At all such points the integrand will be  
automatically analytic. In any region where the anti-derivative is  
not analytic special care is needed.

If you restrict the integrand to the real interval 0<=x<=4, then,  
since it has no singularities there, it has some continuous real anti- 
derivative, and if you can find it you can also apply the Newton- 
Leibniz formula in the "naive" way, on the real line of course. But  
we know that any such anti-derivative can't be given by a restriction  
of any complex analytic function in the plane. In other words, any  
anti-derivative will have to have singularities somewhere (including  
all the points where the integrand is singular).

As far as I can tell, all that Adamchik's statement that "the  
discontinuities in the anti-derivative are caused by the  
discontinuities in the integrand" means is that one could not  
represent the anti-derivative by a complex analytic function.  I  
don't think the statement is meant to imply any special relationship  
between the  numbers +/- 2 and the complex poles of f. In fact, (it  
seems to me) the appearence of these real singularities in the anti- 
derivative is  an "accident" and there may well be other anti- 
derivatives that do not have them (?). Adamchik's statement seems to  
suggest that somehow the complex singularities of the integrand  
"cause" the real singularities of the anti-derivative but I don't see  
any basis for this. All I think he meant was that "there have to be  
some singularities" in the anti-derivative.

Note that in fact the anti-derivative

ArcTan[(x + 1)/(4 - x^2)]

apart from the branch points at x=+/- 2 has also singularities at the  
poles of the integrand f, since

FullSimplify[(-x - 1)/(x^2 - 4) /.
    Solve[x^4 - 7*x^2 + 2*x + 17 == 0,
     x]]

{-I, -I, I, I}

At all these points are of course singularities of ArcTan, as one  
would expect them to be. On the other hand,


D[ArcTan[(-x - 1)/(x^2 - 4)], x]


(-((2*(-x - 1)*x)/(x^2 - 4)^2) -
    1/(x^2 - 4))/
   ((-x - 1)^2/(x^2 - 4)^2 + 1)

has removable singularities at +/- 2.



Andrzej Kozlowski





On 22 Mar 2007, at 07:07, dimitris wrote:

>
> Hello Daniel!
>
> Of course I am aware of branch cuts and the stuff!
>
> May be I was not too clear in order someone to understand me!
>
> Read the first 4 pages of the paper of V Adamichik's Definite
> Integration
> in Mathematica v. 3.0. available from here:
>
> http://library.wolfram.com/infocenter/Articles/3157/
>
> I will try to set my  question as clear as I can!
>
> The integral that appears in V.A. paper is
>
> f = HoldForm[Integrate[(4 + 2*x + x^2)/(17 + 2*x - 7*x^2 + x^4), {x,
> 0, 4}]]
>
> and the integrand is a smooth integrable function in the whole real
> axis.
>
> Mathematica's answer of (symbolic) definite integration is
>
> ReleaseHold@%
> Pi - ArcTan[1/4] - ArcTan[5/12]
>
> which agrees with the result obtained by numerical integration
>
> {(N[#1, 20] & )[%], ReleaseHold[f /. Integrate[x___] :> NIntegrate[x,
> WorkingPrecision -> 40,
>  AccuracyGoal -> 20]]}
> {2.5018228707631675676, 2.50182287076316756755}
>
> Everything is ok up to now! And as I have shown in an old post you can
> using Mathematica to get a continuus
> antiderivative in the integration range but this is not my goal! I am
> very happy by Mathematica's antiderivative which is rather simple
> contrary to my expression.
>
> Mathematica uses (an extended version of) Risch algorithm in order to
> get an antiderivative
> for [(x^2 + 2*x + 4)/(x^4 - 7*x^2 + 2*x + 17)
>
> Simplify[Integrate[(x^2 + 2*x + 4)/(x^4 - 7*x^2 + 2*x + 17), x]]
> ArcTan[(1 + x)/(4 - x^2)]
>
> and due to the jump discontinuity of ArcTan at x=2  the correct way in
> order to apply the Newton-Leibniz formula
> is
>
> (% /. x -> 4) - Limit[%, x -> 2, Direction -> -1] + Limit[%, x -> 2,
> Direction -> 1] - (% /. x -> 0)
> Pi - ArcTan[1/4] - ArcTan[5/12]
>
> Again everything is clear and absolutely easy to understand!
>
> My query appears exactly after this point!
>
> Victor Adamchik tries next (in the same article) to explain the
> situation.
>
> He states that discontinuities of antiderivatives along the path of
> integration are due to the nature of the integrand-not the method of
> indefinite integration. In the above example, the integrand has four
> singular poles that become branch points for the antiderivative.
> Connected in pairs these points make two branch cuts. The path of
> integration crosses one of them
>
> The poles of the integrand are at the following points in the complex
> plain
>
> NSolve[x^4 - 7*x^2 + 2*x + 17 == 0, x]
> {{x -> -1.9533360788744223 - 0.2440276635405635*I}, {x ->
> -1.9533360788744223 + 0.2440276635405635*I},
>   {x -> 1.9533360788744223 - 0.7559723364594371*I}, {x ->
> 1.9533360788744223 + 0.7559723364594371*I}}
>
> (ContourPlot[Evaluate[#1[ArcTan[(1 + x)/(4 - x^2)] /. x -> x + I*y]],
> {x, -3, 4}, {y, -3, 4}, ContourShading -> False,
>     Contours -> 20, PlotPoints -> 40, Epilog -> {Hue[0],
> Thickness[0.005], Line[{{0, 0}, {4, 0}}]}] & ) /@ {Re, Im}
>
> What I don't understand is exactly his statement "... Connected in
> pairs these points make two branch cuts..."
> and how is connected with the jump discontinuity at x=2.
>
> These pairs of chosen branch cuts by Mathematica for the
> antiderivative cross the horizontal axis at x=+/-2?
>
> If the answer is yes at last I have understand it!
>
>
> dh <dh at metrohm.ch> wrote:
>
> Hi Dimitris,
> if an anylytic function is multivalued with singularities, people
> often
> try nevertheless to define a continuous single valued function. This
> is
> not possible globally, there are always places where we will have a
> misfit. One therefore cuts the plane and defines "branch cuts" where
> the
> new function is not continuous. Away from these cuts the function is
> continuous. Note that these cuts are not clear cut. As long as we get
> a
> continuos function, we can choose the cuts as we please. Further, as
> the
> original function is multivalued, we can define even more different
> continuous functions.
> Now concerning the fundmental theorem, it seems clear that if we
> cross
> the branch cut the theorem can not be applied. It only works if the
> antiderivative is continuous in the integration range. In your case:
> ArcTan[(1 + x)/(4 - x^2)], the branch cut was chosen so that we have
> a
> discontinuity at x=2. If we had chosen the branch cuts differently,
> we
> may have been able to find a function that is continuous in 0..4. But
> this is not easily done! At least not analytically. However, you may
> easily do so numerically in the real domain (although the function
> may
> not be non-analytical (no power series)).
> Daniel
>
> dimitris wrote:
>> Hello to all of you!
>>
>> Firstly, I apologize for the lengthy post!
>> Secondly, this post has a close connection with a recent (and well
>> active!)
>> thread titled "Integrate" and one old post of mine which was based on
>> a older
>> post of David Cantrell. Since there was no response and I do consider
>> the
>> subject very fundamental I would like any kind of insight.
>>
>> In the section about Proper Integrals in his article, Adamchik
>> mentions that the Newton-Leibniz formula (i.e. the Fundamental
>> Theorem of Integral Calculus: Integrate[f[x],{x,a,b}]=F[b]-F[a],
>> F[x]: an antiderivative), does not hold any longer if the
>> antiderivative F(x) has singularities in the integration interval
>> (a,b).
>>
>> To demonstrate this, he considers the integral of the function:
>>
>> f[x_] = (x^2 + 2*x + 4)/(x^4 - 7*x^2 + 2*x + 17);
>>
>> over the interval (0,4).
>>
>> Plot[f[x], {x, 0, 4}];
>> (*plot to be displayed*)
>>
>> The integrand posseses no singularities on the interval (0,4).
>>
>> Here is the corresponding indefinite integral
>>
>> F[x_] = Simplify[Integrate[f[x], x]]
>> ArcTan[(1 + x)/(4 - x^2)]
>>
>> Substituting limits of integration into F[x] yields an incorrect
>> result
>>
>> Limit[F[x], x -> 4, Direction -> 1] - Limit[F[x], x -> 0, Direction -
>>> 1]
>> N[%]
>> NIntegrate[f[x], {x, 0, 4}]
>>
>> -ArcTan[1/4] - ArcTan[5/12]
>> -0.6397697828266257
>> 2.501822870767894
>>
>> This is because the antiderivative has a jump discontinuity at x=2
>> (also at x = -2), so that the Fundamental theorem cannot be used.
>>
>> Indeed
>>
>> Limit[F[x], x -> 2, Direction -> #1]&/@{-1, 1}
>> Show@Block[{$DisplayFunction=Identity},
>> Plot[F[x],{x,#[[1]],#[[2]]}]&/@Partition[Range[0,4,2],2,1]];
>> {-(Pi/2), Pi/2}
>> (*plot to be displayed*)
>>
>> The right way of applying the Fundamental theorem is the following
>>
>> (Limit[F[x], x -> 4, Direction -> 1] - Limit[F[x], x -> 2,  
>> Direction -
>>> -1]) +
>> (Limit[F[x], x -> 2, Direction -> 1] - Limit[F[x], x -> 0, Direction
>> -> -1])
>> N[%]
>> Pi - ArcTan[1/4] - ArcTan[5/12]
>> 2.501822870763167
>>
>> Integrate works in precisely this way
>>
>> Integrate[f[x], {x, 0, 4}]
>> N[%]
>>
>> Pi - ArcTan[1/4] - ArcTan[5/12]
>> 2.501822870763167
>>
>> A little later, he (i.e. Adamchik) says "The origin of
>> discontinuities
>> along the path of integration is not in the method of indefinite
>> integration but rather in the integrand."
>>
>> Adamchik mentions next that the four zeros of the integrand's
>> denominator
>> are two complex-conjugate pairs having real parts +/- 1.95334. It
>> then
>> seems that he is saying that, connecting these conjugate pairs by
>> vertical line segments in the complex plane, we get two branch
>> cuts...
>>
>> BUT didn't the relevant branch cuts for his int cross the real axis
>> at x = +/- 2, rather than at x = +/- 1.95334?
>>
>> (NOTE: The difference between 1.95334 and 2 is not due to numerical
>> error).
>>
>> Exactly what's going on here?
>>
>> Show[GraphicsArray[Block[{$DisplayFunction = Identity},
>> (ContourPlot[#1[F[x + I*y]], {x, -4, 4}, {y, -4, 4}, Contours -> 50,
>> PlotPoints -> 50, ContourShading -> False, Epilog -> {Blue,
>> AbsoluteThickness[2], Line[{{0, 0}, {4, 0}}]},
>> PlotLabel -> #1[HoldForm[F[x]]]] & ) /@ {Re, Im}]], ImageSize
>> - > 500];
>> (*contour plots to be displayed*)
>>
>>
>> Consider next the following function
>>
>> f[x_] = 1/(5 + Cos[x]);
>>
>> Then
>>
>> Integrate[f[x], {x, 0, 4*Pi}]
>> N[%]
>> NIntegrate[f[x], {x, 0, 4*Pi}]
>>
>> Sqrt[2/3]*Pi
>> 2.565099660323728
>> 2.5650996603270704
>>
>> F[x_] = Integrate[f[x], x]
>> ArcTan[Sqrt[2/3]*Tan[x/2]]/Sqrt[6]
>>
>> D[F[x], x]==f[x]//Simplify
>> True
>>
>> Plot[f[x], {x, 0, 4*Pi}, Ticks -> {Range[0, 4*Pi, Pi/2], Automatic}]
>> Plot[F[x], {x, 0, 4*Pi}, Ticks -> {Range[0, 4*Pi, Pi/2], Automatic}]
>>
>> The antiderivative has jump discontinuities at Pi and 3Pi inside the
>> integration range
>>
>> Table[(Limit[F[x], x -> n*(Pi/2), Direction -> #1] & ) /@ {-1, 1},  
>> {n,
>> 0, 4}]
>> {{0, 0}, {ArcTan[Sqrt[2/3]]/Sqrt[6], ArcTan[Sqrt[2/3]]/Sqrt[6]}, {- 
>> (Pi/
>> (2*Sqrt[6])), Pi/(2*Sqrt[6])},
>> {-(ArcTan[Sqrt[2/3]]/Sqrt[6]), -(ArcTan[Sqrt[2/3]]/Sqrt[6])}, {0,
>> 0}}
>>
>> Reduce[5 + Cos[x] == 0 && 0 <= Re[x] <= 4*Pi, x]
>> {ToRules[%]} /. (x_ -> b_) :> x -> ComplexExpand[b]
>> x /. %;
>> ({Re[#1], Im[#1]} & ) /@ %;
>> poi = Point /@ %;
>>
>> x == 2*Pi - ArcCos[-5] || x == 4*Pi - ArcCos[-5] || x == ArcCos 
>> [-5] ||
>> x == 2*Pi + ArcCos[-5]
>> {{x -> Pi - I*Log[5 - 2*Sqrt[6]]}, {x -> 3*Pi - I*Log[5 - 2*Sqrt 
>> [6]]},
>> {x -> Pi + I*Log[5 - 2*Sqrt[6]]},
>> {x -> 3*Pi + I*Log[5 - 2*Sqrt[6]]}}
>>
>> Of course F[4Pi]-F[0]=0 incorrectly.
>>
>> The reason for the discrepancy in the above result is not because of
>> any problem with the fundamental theorem of calculus, of course;  
>> it is
>> caused by the multivalued nature of the indefinite integral arctan.
>>
>>
>> Show[GraphicsArray[Block[{$DisplayFunction = Identity},
>> (ContourPlot[#1[F[x + I*y]], {x, 0, 4*Pi}, {y, -4, 4}, Contours ->
>> 50, PlotPoints -> 50, ContourShading -> False,
>> FrameTicks -> {Range[0, 4*Pi, Pi], Automatic, None, None},
>> Epilog -> {{PointSize[0.03], Red, poi},
>> {Blue, Line[{{0, 0}, {4*Pi, 0}}]}}] & ) /@ {Re, Im}]],
>> ImageSize -> 500]
>>
>> So, in this example the discontinuities are indeed from the branch
>> cuts that start and end from the simple poles of the integrand which
>> is in agreement with V.A. paper!
>>
>>
>> I think I am not aware of something fundamental!
>> Can someone point out what I miss?
>>
>>
>> Regards
>> Dimitris
>>
>>
>





  • Prev by Date: Re: Definite Integration in Mathematica
  • Next by Date: Re: Re: Re: fastest way to add up a billion numbers
  • Previous by thread: Re: Definite Integration in Mathematica
  • Next by thread: Re: Definite Integration in Mathematica