MathGroup Archive 2005

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

Search the Archive

Re: computing residues

  • To: mathgroup at
  • Subject: [mg54821] Re: [mg54785] computing residues
  • From: Daniel Lichtblau <danl at>
  • Date: Wed, 2 Mar 2005 22:29:10 -0500 (EST)
  • References: <>
  • Sender: owner-wri-mathgroup at

mjumbo wrote:

>I would like to compute residues of analytical function, but Mathematica's built-in function Residue produces extremely strange results. E.g.
>Residue[1/Sin[z], {z, w}]
>gives 0, I expected it produce some conditional expression, or at least to leave this expression unevaluated, but 0 is surely incorrect. 
>What I am doing wrong?
> -- óçåë ñâîáîäíûõ êîììóíèêàöèé.

You are not doing anything wrong but your expectation is not realistic. 
You would like Residue to encorporate, among other things, a 
(nonexistent) transcendental solver, and an oracle to determine when the 
expansion point might be treated as arbitrary. This would also raise 
serious design issues in terms of how to describe the result. To see 
what I mean, consider what output you think might be realistic for the 
following examples.

Residue[(z^2-1)/Sin[z*Pi], {z,z0}]
Residue[(z^2-1)/Sin[Sin[z*Pi]], {z,z0}]
Residue[(z^2-1)/Sin[z*t], {z,z0}]
Residue[1/(z-Tan[z]), {z,z0}]
Residue[1/(z-t*Tan[z]), {z,z0}]
Residue[1/Sin[z], {z,z0-Sqrt[z0^2]}]

I can tell you how one might begin to approach this. Use Reduce to find 
zeros of 1/f[z]. Give up when Reduce fails. Otherwise attempt to use its 
result as an assumption to Series in order to find information about 
singular points.

Among other issues this assumes that you can in some way recognize what 
is the "variable" on which you will place assumptions. And that Series 
can be used to advantage with appropriate assumptions. For example, here 
we find a pole, as desired.

In[19]:= Series[1/Sin[z*Pi], {z,z0,1}, Assumptions->Element[z0,Integers]]

         Sec[Pi z0]    Sec[Pi z0] Tan[Pi z0]
Out[19]= ----------- + --------------------- +
         Pi (z - z0)             2
      Pi Sec[Pi z0]   Pi Sec[Pi z0] Tan[Pi z0]                       2
 >    (------------- + -------------------------) (z - z0) + O[z - z0]
            6                     4

Here we are not so fortunate.

In[21]:= Series[1/Sin[z], {z,z0,1}, Assumptions->Element[z0/Pi,Integers]]

Out[21]= Csc[z0] - Cot[z0] Csc[z0] (z - z0) + O[z - z0]

In summary, I see several things standing in the way of this rather 
vaguely proposed functionality.

(1) Lack of a clear design for what it should do, e.g. how to return the 
(2) Lack of capabilities to discern singular points.
(3) Lack of an ability to recognize that the expansion point is in some 
way not bound to a specific "value" (that is to say, how do we know to 
treat it as being "possibly a singularity").
(4) Lack of an ability to recognize what are the assumptions needed to 
place us at such points.
(5) Lack of a reasonable way to expand series with those assumptions 
that place us at such points.

Daniel Lichtblau
Wolfram Research

  • Prev by Date: Rearranging a data array containing calendrical as well as data entries.
  • Next by Date: Re: FinFit question
  • Previous by thread: Re: computing residues
  • Next by thread: Re: Re: computing residues