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: fundamental Integrate question

  • To: mathgroup at smc.vnet.net
  • Subject: [mg73048] Re: [mg73031] fundamental Integrate question
  • From: Daniel Lichtblau <danl at wolfram.com>
  • Date: Wed, 31 Jan 2007 00:04:41 -0500 (EST)
  • References: <200701301144.GAA14308@smc.vnet.net>

dimitris wrote:
> Consider the classical example that incorrectly gave zero in a prior 
> version of Mathematica
> (adopted from http://library.wolfram.com/infocenter/Conferences/5832/)
> 
> In[345]:=
> Integrate[f[z], {z, 1 + I, -1 + I, -1 - I, 1 - I, 1 + I}]
> Chop[N[%]]
> Chop[NIntegrate[f[z], {z, 1 + I, -1 + I, -1 - I, 1 - I, 1 + I}]]
> 
> Out[345]=
> 2*I*Pi
> 
> Out[346]=
> 6.283185307179586*I
> 
> Out[347]=
> 6.2831853071795685*I
> 
> Of course the result is correct considering the pole at origin and the 
> Residue theorem.
> 
> Trying to understand how Mathematica applies the Newton-Leibniz 
> formula I just want to know if
> I am right below:
> 
> In[511]:=
> ((F[z] /. z -> 1 - I) - F[z] /. z -> -1 - I) + ((F[z] /. z -> 1 + I) - 
> F[z] /. z -> 1 - I) +
>   ((F[z] /. z -> -1 + I) - F[z] /. z -> 1 + I) + (Limit[F[z], z -> -1, 
> Direction -> -I] - F[z] /. z -> -1 + I) +
>   ((F[z] /. z -> -1 - I) - Limit[F[z], z -> -1, Direction -> I])
> 
> Out[511]=
> 2*I*Pi
> 
> Thanks for any response!
> 
> Dimitris

Not clear what you use for f[x]. Maybe 1/x? Anyway, quoting the author 
of that notebook:

"It is important to assess whether an integration path crosses a branch 
cut of an antiderivative (so that we might split the path into 
segments)." So yes, I would imagine it does something along the lines 
you suggest.

To see explicitly what limits get computed you might first do

Unprotect[Limit];
Limit[a___] := Null /; (Print[InputForm[limit[a]]]; False)


Daniel Lichtblau
Wolfram Research


  • Prev by Date: Re: How to do quickest
  • Next by Date: Re: Problem with ExpIntegralEi vs. LogIntegral
  • Previous by thread: fundamental Integrate question
  • Next by thread: Re: fundamental Integrate question