Math 421  •  Fall 2006

Poles and other singularities

Copyright © 2004–2006 by Murray Eisenberg.  All rights reserved.

Introduction

This notebook presents some additional examples of visualizing singularities of complex functions and especially poles.  And it shows how to calculate residues at nonremovable isolated singularities.

The initialization cells, which you should have allowed to be evaluated when you opened this notebook, load David Park's Cardano3 application packages.  (If you didn't allow that, you will get a second chance when you first evaluate any Mathematica expression in this notebook.)

Initializations

Load David Park's Cardano3 application packages:

Needs["Cardano3`ComplexGraphics`"]
Needs["Cardano3`ComplexRoutines`"]

Turn off some annoying warning messages that might otherwise appear about similarly-named objects.  (If you want to see these messages so as to be sure to avoid harm, evaluate expressions like the ones below but replace Off there by On.)

Off[General::spell]
Off[General::spell1]

Functions CartesianSurface and PolarSurface

These two functions from Park's Cardano3 application are documented in his notebook UsingComplexGraphics.nb.  See also Park's notebook TanFunction.nb, available on the Math 421 web site.  We will use these two functions as arguments to OnePanelPlot (or perhaps also to TwoPanelPlot).

Our main use for CartesianSurface and PolarSurface is to visualize certain behavior near singularities of complex functions \(TraditionalForm\`f\  : \ ℂ\  -> \ ℂ\).  For such a function, we look at the modulus |f(z)| of values of f and thereby obtain a function 
	\(TraditionalForm\`\(\(|\)\(f\)\(|\)\)\  : \ ℂ\  -> \ ℝ\).
Thinking of ℂ as the plane (ℝ^2), then, we draw the surface in (ℝ^3)that is the graph of this function \(TraditionalForm\`ℝ\^2\  -> \ ℝ\).

Nonisolated singularities

Example 1: f(z)  =  1/sin(1/z)

Clear[f]
f[z_]  :=  (1/Sin)[1/z];  f[0]  =  0;

Directly try to find f' (0):

Limit[((f[0  +  Δz]  -  f[0])/Δ)z,  Δz  ->  0]

The function f has singularities at 1/π n for every integer n and therefore also at 0  =  
        (lim_( n  ->  0)) (1/π n).

Simplify[f[(1/(π n))],  n  ∈  Integers]

Hence the singularity 0 of f is not isolated.

The plot below is of the function \(TraditionalForm\`\(\(|\)\(f\)\(|\)\)\  : \ ℂ\  -> \ ℝ\).

OnePanelPlot[{f[#] &, 
          Abs}, 
CartesianSurface, 
{0, 
          1}, 
{}];

Increase the number of values sampled in both the x and y directions by means of PlotPoints.  (Notice the required additional argument {} before you can include the optional final argument with additional plot options.

OnePanelPlot[{f[#] &, 
          Abs}, 
CartesianSurface, 
{0, 
          1}, 
{}, 
{}, 
{PlotPoints  ->  {71,  
              71}}
];

Here's the same thing but with changed coloring (by means of ColorMix and Background) and adjusted ratios of scale in the three dimensions (by means of BoxRatios):

OnePanelPlot[{f[#] &, 
          Abs}, 
CartesianSurface, 
{0, 
          1}, 
{ColorMix[MediumSeaGreen, White][
            0.3]}, 
{}, 
{PlotPoints -> {71, 71}, BoxRatios -> {1, 1, 0.75},  
          Background -> AliceBlue}
];

The same thing but with an enlarged PlotRange:

OnePanelPlot[{f[#] &, 
          Abs}, 
CartesianSurface, 
{0, 
          1}, 
{ColorMix[MediumSeaGreen, White][
            0.3]}, 
{}, 
{PlotRange  ->  {0,  10},  PlotPoints -> {71, 71}, 
          BoxRatios -> {1, 1, 0.75},  
          Background -> AliceBlue}
];

Isolated singularities

Example 2:  f(z)  =  
        1/((z  -  1) (z  -  2))

Clear[f]
f[z_]  :=  (1/((z  -  1) (z  -  2)))

Clearly f has just the two singularities z  =  1 and z  =  2, so these are isolated.

OnePanelPlot[{f[#] &, 
          Abs}, 
CartesianSurface, 
{0, 
          3}, 
{}];

Huh—only one singularity?  Sample more points and increase the plot range:

OnePanelPlot[{f[#] &, 
          Abs}, 
CartesianSurface, 
{0, 
          3}, 
{ColorMix[MediumSeaGreen, White][
            0.3]}, 
{}, 
{PlotRange  ->  {0,  10},  PlotPoints -> {71, 71}, 
          BoxRatios -> {1, 1, 0.75},  
          Background -> AliceBlue}
];

Change the plot center in the complex plane to the midpoint 1.5 between the two singularities:

OnePanelPlot[{f[#] &, 
          Abs}, 
CartesianSurface, 
{1.5, 
          1}, 
{ColorMix[MediumSeaGreen, White][
            0.3]}, 
{}, 
{PlotRange  ->  {0,  10},  PlotPoints -> {71, 71}, 
          BoxRatios -> {1, 1, 0.75},  
          Background -> AliceBlue}
];

A Laurent series around z  =  1:

Series[f[z],  {z,  1,  10}]

Thus the isolated singularity z  =  1 is a pole—a simple pole, in fact.

The coefficient of the term with power (1/(z  -  1)):

Residue[f[z],  {z,  1}]

A Laurent series around z  =  2:

Series[f[z],  {z,  2,  10}]

And the isolated singularity z  =  2 is also a simple pole.

The coefficient of the term with power (1/(z  -  2)):

Residue[f[z],  {z,  2}]

Removable singularities

Example 3:  f(z)  =  (sin z) / z

Clear[f]
f[z_]  :=  Sin[z]/z

Clearly 0 is an isolated singularity.

There's no unpleasant behavior near 0, however:

OnePanelPlot[{f[#] &, 
          Abs}, 
CartesianSurface, 
{0, 
          1}, 
{}];

Limit[f[z],  z  ->  0]

Series[f[z],  {z,  0,  10}]

Thus the singularity at 0 is removable.

Example 4:  f(z)  =  (e^(z  -  2))

Clear[f]
f[z_]  :=  Exp[z  -  2];
f[2]  =  421;

Clearly 2 is an isolated singularity.

There's no unpleasant behavior near 2, however:

OnePanelPlot[{f[#] &, 
          Abs}, 
CartesianSurface, 
{2, 
          1}, 
{}];

Limit[f[z],  z  ->  2]

Series[f[z],  {z,  2,  10}]

Thus the singularity at 2 is removable.

Poles

Example 5:   f(z)  =  
        1 / ((z  -  1) (z  -  2))

See Example 2, above.

Example 6:  f(z)  =  1/(z (((z  -  1))^2))

f[z_]  :=  (1/(z (((z  -  1))^2)))

Series[f[z],  {z,  0,  10}]

So z  =  0 is a simple (order 1) pole.

Here are calculations that use criteria equivalent to the definition to verify that 0 is a pole of order 1:

Limit[(z  -  0) f[z],  z  ->  0]  ≠  
      0

g[z_]  :=  z (((z  -  1))^2)

{g[0]  ==  0,  g'[0]  ≠  0}

Residue[f[z],  {z,  0}]

Series[f[z],  {z,  1,  10}]

So z  =  1 is a pole of order 2.

Here are calculations that use criteria equivalent to the definition to verify that 0 is a pole of order 1:

Limit[(((z  -  1))^2) f[z],  z  ->  1]  ≠  
      0

g[z_]  :=  z (((z  -  1))^2)

{g[1]  ==  0,  g'[1]  ==  
        0,  g''[1]  ≠  0}

Residue[f[z],  {z,  1}]

OnePanelPlot[{f[#] &, 
          Abs}, 
CartesianSurface, 
{0, 
          2}, 
{ColorMix[MediumSeaGreen, White][
            0.3]}, 
{}, 
{PlotRange  ->  {0,  20},  PlotPoints -> {71, 71}, 
          BoxRatios -> {1, 1, 0.75},  
          Background -> AliceBlue}
];

Example 7:  f(
          z)  =  (z cos z)/ ((z  -  
                  1) ((((z^2)  +  1))^2) ((z^2)  +  3  z  +  
                  2))

Clear[f]
f[z_]  :=  ((z Cos[z])/((((z  -  1))^2) ((((z^2)  +  1))^2) ((z^2)  +  3  z  +  2)))

Solve[(z^2)  +  3  z  +  2  ==  0,  z]

The singularities of f are at z  =  -2,  z  =  -1,  z  =  1,  
      z  =  i,  and z  =  - i.

OnePanelPlot[{f[#] &, 
          Abs}, 
CartesianSurface, 
{0, 
          2.5}, 
{ColorMix[MediumSeaGreen, White][
            0.3]}, 
{}, 
{PlotRange  ->  {0,  20},  PlotPoints -> {71, 71}, 
          BoxRatios -> {1, 1, 0.75},  
          Background -> AliceBlue}
];

Thus the five singularities appear all to be poles, since at each (lim_( z  ->  (Subscript[z, 0]))) |f(
              z)|  =  ∞.  Let's classify them by order.

Series[f[z],  {z,  -2,  5}]

Limit[(z  +  2) f[z],  z  -> - 2]

Series[f[z],  {z,  -1,  5}]

Limit[(z  +  1) f[z],  z  ->  -1]

Series[f[z],  {z,  1,  5}]

Limit[(z  -  1) f[z],  z  ->  1]

Limit[(((z  -  1))^2) f[z],  z  ->  1]

Series[f[z],  {z,  I,  5}]

Limit[(z  -  I) f[z],  
      z  ->  I]

Limit[(((z  -  I))^2) f[z],  
      z  ->  I]

Series[f[z],  {z,  -I,  5}]

Limit[(z  +  I) f[z],  
      z  ->  -I]

Limit[(((z  +  I))^2) f[z],  
      z  ->  -I]

Conclusion:  -2 and -1 are simple poles of f; 1, i, and –i are double poles.

Example 8:  f(
          z)  =  ((z^2)  +  1)/ ((e^z)  +  1)

We classify the singularity at (Subscript[z, 0])  =  π i.

Clear[g,  h]
g[z_]  :=  (z^2)  +  1
h[z_]  :=  Exp[z]  +  1
f[z_]  :=  g[z]/h[z]

z0  =  π I;

{g[z0]  ≠  0,  h[z0]}

h'[z0]

Thus (Subscript[z, 0]) is a zero of order 1 of the denominator h(z) of f(z).  Hence (Subscript[z, 0]) is a simple pole of f.

Check that more directly with the definition in terms of Laurent series:

Series[f[z],  {z,  z0,  10}]

Residue[f[z],  {z,  z0}]

OnePanelPlot[{f[#] &, 
          Abs}, 
CartesianSurface, 
{π I,  
          1}, 
{ColorMix[MediumSeaGreen, White][
            0.3]}, 
{}, 
{PlotRange  ->  {0,  100},  PlotPoints -> {71, 71}, 
          BoxRatios -> {1, 1, 0.75},  
          Background -> AliceBlue}
];

Essential singularities

Example 9:  f(
          z)  =  (((z  -  1))^2) exp(1/(z  -  1))

Clear[f]
f[z_]  :=  (((z  -  1))^2) Exp[(1/(z  -  1))]

Series[f[z],  {z,  1,  10}]

Try another approach:  start with the Maclaurin series for exp(w); replace w in it by 1/(z  -  1); and finally multiply by (((z  -  1))^2).  There will be infinitely many non-zero terms with negative powers of z  -  1.  Here, of course, we can only suggest that with some large number of terms in the Maclaurin series for the exponential function:

Series[Exp[w],  {w,  0,  20}]  /.  
      w  ->  (1/(z  -  1))

(((z  -  1))^2) %

What does the graph of \(TraditionalForm\`\(\(|\)\(f\)\(|\)\)\  : \ ℂ\  -> \ ℝ\) look like?

OnePanelPlot[{f[#] &, 
          Abs}, 
CartesianSurface, 
{0, 
          3}, 
{ColorMix[MediumSeaGreen, White][
            0.3]}, 
{}, 
{PlotRange  ->  {0,  2},  PlotPoints -> {71, 71}, 
          BoxRatios -> {1, 1, 0.75},  
          Background -> AliceBlue}
];

OnePanelPlot[{f[#] &, 
          Abs}, 
CartesianSurface, 
{0, 
          3}, 
{ColorMix[MediumSeaGreen, White][
            0.3]}, 
{}, 
{PlotRange  ->  {0,  8},  PlotPoints -> {71, 71}, 
          BoxRatios -> {1, 1, 0.75},  
          Background -> AliceBlue}
];