COMPLEX ANALYSIS: Mathematica 4.1 Notebooks
(c) John H. Mathews, and
Russell W. Howell, 2002
Complimentary software to accompany our textbook:

COMPLEX ANALYSIS: for Mathematics and Engineering, 
4th Edition,  2001,  ISBN: 0-7637-1425-9
Jones & Bartlett Publishers, Inc.  
40 Tall Pine Drive, Sudbury, MA 01776  
Tele.  (800) 832-0034, FAX:  (508)  443-8000  
E-mail:  mkt@jbpub.com  
Internet:  http://www.jbpub.com/  
This free software is compliments of the authors.
John H. Mathews,   mathews@fullerton.edu 
Russell W. Howell,  howell@westmont.edu

CHAPTER 7  TAYLOR AND LAURENT SERIES

a = b = c = x = y = z = Z = 
                    0; 
Clear[a, A, b, c, f, f1, f2, g, h, i, lim1, lim2, L, L1, L2, L3, L4, 
        m, n, p, solset, S, SI, Sinf, S0, S7, S9, S11, S12, S13, S17, S21, 
        S22, S25, x, y, z, Z, Z1, Z2, Z3, Z4]; 
Needs["Graphics`ComplexMap`"]; 
Needs["Graphics`Colors`"];

Section 7.1	Uniform Convergence

Section 7.2	Taylor Series Representations

Section 7.3  Laurent Series Representations

Suppose  f(z)  is not analytic in  (Subscript[D, R]) (α),  but is analytic in  \(\(D\_R\%*\) \((α)\) = {z : \ \ \(\(0\)\(\ \)\(<\)\)\  | 
              z - α | \ \(\(<\)\(\ \)\(R\)\)}\).  For example, the function  f[z] = (1/(z^3)) (e^z)  is not analytic when  z =  0  but is analytic for |z|> 0.  Clearly, this function does not have a Maclaurin Series    series representation.  If we use the Maclaurin series for  g[z] = (e^z),  however, and formally divide each term in that series by  (z^3), we obtain the representation  

	f[z]=(1/(z^3)) (e^z) = (1/(z^3)) + (1/(z^2)) + (1/(2! z)) + 
                  (1/(3!)) + (z/(4!)) + ((z^2)/(5!)) + ((z^3)/(6!))+...

that is valid for all  z  such that  |z|> 0.

Example on,  Page 224.  Use Mathematica to find the series for f (z) = ((e^z)/(z^3)).

Solution for Example on Page 224.

Enter the function  f[z] = ((e^z)/(z^3)) and find the first few terms of the series in the punctured plane  0 < z.

Remove[z]; 
Clear[f, L, S, S9, S11, S12, S21, S22, S∞]; 
f[z_]  =  ((E^z)/(z^3)); 
S[z_]  =  
        Normal[Series[(E^z), {z, 0, 9}]]; 
L[z_]  =  Normal[Series[f[z], {z, 0, 6}]]; 
Print["f[z] = ", f[z]]; 
Print[""]; 
Print["S[z] = (", S[z], " + ... )/(", 
        (z^3), ")"]; 
Print["L[z] = ", 
        L[z], " + ..."];

The latter is a series is valid for 0 < |z|.  Sum up infinitely many terms to verify that we have things right.

S9[
          z_]  =  (∑_(n = 0)^9) ((z^(n - 3))/(n!)); 
S∞[
          z_]  =   (∑_(n = 0)^∞) ((z^(n - 3))/(n!)); 
\(\(Print[\*""\!\(S\_9\)[z] = "", 
        S9[z]];\)\ \)
Print[""]; 
\(\(Print[\*""(Subscript[S, ∞])[z] = (∑_(n = 0)^∞)((z^(n - 3))/(n!)) =  "", 
        S∞[z]];\)\ \)

We can use Mathematica to investigate how well the series is "converging" for real numbers.

\(

\(Plot[{f[x], S9[x]}, {x, 0.1, 8}, 
        PlotRange -> {{0, 8}, {0, 10}}, 
        Ticks -> {Range[0, 8, 1], Range[0, 10, 1]}, 
        PlotStyle -> {Red, Green}, 
        AxesLabel -> {"x", "s"}];\)\ \)
\(\(Print["s = ", 
        f[x], \*""  and  s = \!\(S\_9\)[x]""];\)\ \)
\(\(Print[\*""\!\(S\_9\)[x] = "", 
        S9[x]];\)\ \)

We can use Mathematica to investigate how well the complex series is "converging" in the complex plane.
But, we need to stay away from  z=0.  For convenience we use the disk  |z - 1| < 0.999.

F[z_] = f[z + 1]; 
G[z_] = S9[z + 1]; 
\(\(PolarMap[
        G\ , {0, 0.999, 
          0.1665}, {\(-π\), \ π, \ π\/12}, 
PlotRange -> {{\(-5\), 5}, {\(-5\), 5}}, 
        AspectRatio -> 
          1, 
Ticks -> {Range[\(-5\), 5, 1], 
            Range[\(-5\), 5, 1]}, AxesLabel -> {"u", "v"}, 
        PlotStyle -> {DarkGreen, Green}];\)\ \)
\(\(Print[\*""w = \!\(S\_9\)[1+z] =  "", 
        S9[1 + z], ",  where |z| < 0.999"];\)\ \)
\(\(PolarMap[
        F, {0, 0.999, 
          0.1665}, {\(-π\), \ π, \ π\/12}, 
PlotRange -> {{\(-5\), 5}, {\(-5\), 5}}, 
        AspectRatio -> 
          1, 
Ticks -> {Range[\(-5\), 5, 1], 
            Range[\(-5\), 5, 1]}, AxesLabel -> {"u", "v"}, 
        PlotStyle -> {Magenta, Pink}];\)\ \)
Print["w = f[1+z] = ", 
        f[1 + z], ",  where |z| < 0.999"];

CartesianMap[
        S9 , {0.2, 2.2, 0.1}, {-1,  1,  
          0.1}, 
PlotRange -> {{-5, 5}, {-5, 
              5}}, AspectRatio -> 
          1, 
Ticks -> {Range[-5, 5, 1], 
            Range[-5, 5, 1]}, AxesLabel -> {"u", "v"}, 
        PlotStyle -> {DarkGreen, Green}]; 
\(\(Print[\*""w = (Subscript[S, 9])[z] =  "", 
        S9[z], ",  where 0.2 ≤ x ≤ 2.2, -1 ≤ y ≤ 1"];\)\ \)
CartesianMap[
        f, {0.2, 2.2, 0.1}, {-1,  1,  
          0.1}, 
PlotRange -> {{-5, 5}, {-5, 
              5}}, AspectRatio -> 
          1, 
Ticks -> {Range[-5, 5, 1], 
            Range[-5, 5, 1]}, AxesLabel -> {"u", "v"}, 
        PlotStyle -> {Magenta, Pink}]; 
Print["w = f[z] = ", 
        f[z], ",  where 0.2 ≤ x ≤ 2.2, -1 \
≤ y ≤ 1"];

This example raises the question as to whether it might be possible to generalize the Taylor series method to functions analytic in an annulus  \(\(\(\(\ \)\(A\)\)\&_\) \((r, 
            R, α)\) = {z : \ \(\(r\)\(\ \)\(≤\)\) | 
            z - α | \(\(≤\)\(\ \)\(R\)\)}\).   Perhaps we can represent these functions with a series that employs negative powers of  z  in some way as we did with the above example.  As you will see shortly, this is indeed the case.  We begin by defining a series that allows for negative powers of  z.

Definition 7.3 (Laurent Series),  Page 280.  Let  (Subscript[c, n])  be a collection of complex numbers for  \(n = 
        0, \(±1\), \(±2\), \(±3\),  ... \).  The doubly infinite series  (∑_(n = -∞)^∞) 
              (Subscript[c, n]) (((z - α))^n),  also called a Laurent series, is defined by 

	(∑_(n = -∞)^∞) 
                (Subscript[c, n]) (((z - α))^n) = \(∑\+\(n = 1\)\%∞\( 
                c\_\(-n\)\) \((z - α)\)\^\(-n\)\  + \ ∑\+\(n = 0\)\%∞\( c\_n\) \((z - α)\)\^n\),

provided the series on the right-hand side of this equation converge.

Definition 7.4,  Page 280.  Given  0  ≤ r <  R,  we define the annulus centered at  α  with radii  r  and  R  by  

		\(A \((r, 
            R, α)\) = {z : \ \(\(r\)\(\ \)\(<\)\) | \(z - α | \(\(<\)\(\ \)\(R\)\)\)}\).  

The closed annulus centered at  α  with radii  r  and  R  is denoted by  

		\(\(\(\(\ \)\(A\)\)\&_\) \((r, 
            R, α)\) = {z : \ \(\(r\)\(\ \)\(≤\)\) | 
            z - α | \(\(≤\)\(\ \)\(R\)\)}\).

Theorem 7.7,  Page 281.  Suppose the Laurent series  (∑_(n = -∞)^∞) 
              (Subscript[c, n]) (((z - α))^n)  converges on an annulus  \(A \((r, 
            R, α)\) = {z : \ \(\(r\)\(\ \)\(<\)\) | \(z - α | \(\(<\)\(\ \)\(R\)\)\)}\).  Then the series converges uniformly on any closed subannulus  \(\(\(\(\ \)\(A\)\)\&_\) \((r, 
            R, α)\) = {z : \ \(\(s\)\(\ \)\(≤\)\) | \(z - α | \(\(≤\)\(\ \)\(t\)\)\)}\) where  r  < s < t <  R.

Proof of Theorem 7.7, see text Page 281.

The main result of this section specifies how functions analytic in an annulus can be expanded in a Laurent series.  In it, we will use symbols of the form  \(\(C\_ρ\%+\) \((α)\)\),  which we remind you designate the positively oriented circle with radius  ρ  and center  α.  That is,  \(\(C\_ρ\%+\) \((α)\) = {\(\(z\)\(:\)\)\  | 
            z - α | \(\(<\)\(\ \)\(ρ\)\)}\),  oriented counterclockwise.

Theorem 7.8  (Laurent's Theorem),  Page 282.  Suppose  0 ≤ r < R,  and that f(z) is analytic in the annulus \(A = \(A \((r, 
              R, α)\) = {z : \ \(\(r\)\(\ \)\(<\)\) | \(z - α | \(\(<\)\(\ \)\(R\)\)\)}\)\).  If  ρ  is any number such that r  < ρ <  R, then for all (Subscript[z, 0]) ϵ A (r, R, α) the function value f ((Subscript[z, 0])) has the Laurent series representation 

	f ((Subscript[z, 0])) =  (∑_(n = -∞)^∞) 
                  (Subscript[c, n]) ((((Subscript[z, 0]) - α))^n)= \(∑\+\(n = 1\)\%∞\( 
                c\_\(-n\)\) \((z\_0 - α)\)\^\(-n\)\  + \ ∑\+\(n = 0\)\%∞\( c\_n\) \((z\_0 - α)\)\^n\), 

where for n=0,1,2,..., the coefficients (Subscript[c, -n])  and  (Subscript[c, n]) are given by 

	\(c\_\(-n\) = \(1\/\(2  π\ i\)\) \(∫\_\(\(C\_ρ\^+\) \((α)\)\)\(\(f \((z)\)\)\/\((z\  - \ α)\)\^\(\(-n\) + 1\)\) dz\)\) and \(c\_n = \(1\/\(2  π\ i\)\) \(∫\_\(\(C\_ρ\^+\) \((α)\)\)\(\(f \((z)\)\)\/\((z\  - \ α)\)\^\(n + 1\)\) dz\)\).

Proof of Theorem 7.8, see text Page 282.

What happens to the Laurent series if f is analytic in the disk (Subscript[D, R]) (α)? If we look at equation (7-29), we see that the coefficient for the positive power ((((Subscript[z, 0]) - α))^n) equals (((f^((n))) ((Subscript[z, 0])))/(n!)) by using Cauchy's integral formula for derivatives. Hence, the series in equation (7-22) involving the positive powers of ((Subscript[z, 0]) - α) is actually the Taylor series for f. The Cauchy-Goursat theorem shows us that the coefficients for the negative powers of ((Subscript[z, 0]) - α) equal zero. In this case, therefore, there are no negative powers involved, and the Laurent series reduces to the Taylor series.

Theorem 7.9 (Uniqueness and differentiation of Laurent Series), Page 285.  Suppose that  f (z)  is analytic in the annulus  A (r, R, α),  and has the Laurent series representation  \(f \((z)\) = ∑\+\(n = \(-∞\)\)\%∞\( 
                c\_n\) \((z - α)\)\^n\ \ \ for\ all\ \ \ z\ ϵ\ A \((r, R, α)\)\).  

(i)  If  f (z)=(∑_(n = -∞)^∞)(Subscript[b, n])(((z - α))^n)   for all   z ϵ A(r, R, α)then (Subscript[b, n]) = (Subscript[c, n]) for all  n.  
(In other words, the Laurent series for f in a given annulus is unique.)

(ii)  For all z ϵ A (r, R, α), the derivatives for f(z) may be obtained by termwise differentiation of its Laurent series.

Proof of Theorem 7.9, see text Page 285.

The uniqueness of the Laurent series is an important property because the coefficients in the Laurent expansion of a function are seldom found by using integrals.

Example 7.7,  Page 286.  Find three different Laurent series representations for f (z) = (3/(2  +  z  -  (z^2)))involving powers of  z.

Solution 7.7.

Enter the function  f[z] = (3/(2  +  z  -  (z^2))) and find the first few terms of the various Laurent series.

Remove[z]; 
Clear[A, f, f1, f2, L1, L2, L3, L4, S0, S11, S12, S21, S22, 
        SI]; 
f[z_]  =  (3/(2  +  z  -  (z^2))); 
Print["f[z] = ", f[z]];

Mathematica  easily finds the Maclaurin series involving positive powers of  z.

S0[z_]  =  
        Normal[Series[f[z], {z, 0, 7}]]; 
Print["f[z] = ", f[z]]; 
Print[""]; 
\(\(Print[\*""\!\(S\_0\)[z] = "", 
        S0[z], " + ..."];\)\ \)

The above series converges for  |z|< 1,  this requires looking at the sum of the two "geometric series" that form the parts of  (Subscript[S, 0])[z].  Mathematica  can also find "the other series" that involves negative powers of  z, this involves the mental thinking that you substitute  Z = (1/z)  in the original series to get a new function of  Z, then expand it about  Z = 0  and then substitute  Z = (1/z).

SI[z_]  =  
        Normal[Series[f[z], {z, ∞, 10}]]; 
\(\(Print[\*""\!\(S\_∞\)[z] = "", "... ", 
        SI[z]];\)\ \)

The above series converges for  2 <  | z | ,  this requires looking at the sum of the two "geometric series that form the parts of (Subscript[S, ∞])[z].
This leaves an unresolved question: "What happens in the annulus  1 <  | z | < 2 ?  This requires a little work.  First split up the functions up into their partial fraction form, and then do expansions about  z = 0  and  z = ∞  for each part.

A  =  MapAll[Cancel, Apart[f[z]]]; 
f1[z_]  =  
        (Subscript[A, [[2]]]); 
f2[z_]  =  
        (Subscript[A, [[1]]]); 
Print[" f[z] = ", f[z], " = ", 
        A]; 
Print[""]; 
\(\(Print[\*""\!\(f\_1\)[z] = "", f1[z]];\)\ \)
\(\(Print[\*""\!\(f\_2\)[z] = "", 
        f2[z]];\)\ \)

The singularity of  (Subscript[f, 1])[z]  is  z  =  -1,  and the singularity of  (Subscript[f, 2])[z]  is  z  =  2.  Next we form Laurent expansions for the two parts  (Subscript[f, 1])[z]  and  (Subscript[f, 2])[z],  there are two expansions for each function.

S11[z_]  =  
        Normal[Series[f1[z], {z, 0, 12}]]; 
S12[z_]  =  
        Normal[Series[f1[z], {z, ∞, 11}]]; 
S21[z_]  =  Normal[Series[f2[z], {z, 0, 12}]]; 
S22[z_]  =  
        Normal[Series[
            f2[z], {z, ∞, 12}]]; 
\(\(Print[\*""\!\(f\_1\)[z] = "", f1[z]];\)\ \)
\(\(Print[\*""\!\(S\_11\)[z] = "", 
        S11[z], " - ..."];\)\ \)
Print["  for  |z| < 1"]; 
\(\(Print[\*""\!\(S\_12\)[z] = "", "... + ", 
        S12[z]];\)\ \)
Print["  for  |z| > 1"]; 
Print[""]; 
\(\(Print[\*""\!\(f\_2\)[z] = "", f2[z]];\)\ \)
\(\(Print[\*""\!\(S\_21\)[z] = "", 
        S21[z], " + ..."];\)\ \)
Print["  for  |z| < 2"]; 
\(\(Print[\*""\!\(S\_22\)[z] = "", "... + ", 
        S22[z]];\)\ \)
Print["  for  |z| > 2"];

Laurent Series (i).  The first Laurent series  (Subscript[L, 1])[z]  = (Subscript[S, 11])[z] + (Subscript[S, 21])[z]  is valid for  |z|< 1.

L1[z_]  =  
        S11[z]  +  S21[z]; 
Print[" f[z] = ", f[z], " = ", 
        A]; 
Print[""]; 
\(\(Print[\*""\!\(L\_1\)[z] = "", 
        L1[z], " - ..."];\)\ \)

We can use Mathematica to investigate how well the Laurent series is "converging" for real numbers.

\(
\(Plot[{f[x], L1[x]}, {x, \(-0.999999\), 0.999999}, 
        PlotRange -> {{\(-1\), 1}, {0, 5}}, 
        Ticks -> {Range[\(-1\), 1, 0.5], Range[0, 5, 1]}, 
        PlotStyle -> {Red, Green}, 
        AxesLabel -> {"x", "s"}];\)\ \)
\(\(Print["s = ", 
        f[x], \*""  and  s = \!\(L\_1\)[x]""];\)\ \)
\(\(Print[\*""\!\(L\_1\)[x] = "", 
        L1[x]];\)\ \)

We can use Mathematica to investigate how well the complex Laurent series is "converging" in the complex plane.
For the first series we need to be close to  z = 0.  For convenience we use the disk  |z|< 0.6.

\(
\(PolarMap[
        L1, {0, 0.6, 
          0.1}, {\(-π\), \ π, \ π\/12}, 
PlotRange -> {{1, 2}, {\(-0.5\), 0.5}}, 
        AspectRatio -> 
          1, 
Ticks -> {Range[1, 2, 1], 
            Range[\(-1\), 1, 1]}, AxesLabel -> {"u", "v"}, 
        PlotStyle -> {DarkGreen, Green}];\)\ \)
\(\(Print[\*""w = = \!\(L\_1\)[z] = "", 
        L1[z], ",  where |z| < 0.6"];\)\ \)
\(\(PolarMap[
        f, {0, 0.6, 
          0.1}, {\(-π\), \ π, \ π\/12}, 
PlotRange -> {{1, 2}, {\(-0.5\), 0.5}}, 
        AspectRatio -> 
          1, 
Ticks -> {Range[1, 2, 1], 
            Range[\(-1\), 1, 1]}, AxesLabel -> {"u", "v"}, 
        PlotStyle -> {Magenta, Pink}];\)\ \)
Print["w = f[z] = ", 
        f[z], ",  where |z| < 0.6"];

Aside.  If z is NOT chosen close enough to  z = 0 then the series (Subscript[L, 1])[z] will not converge rapidly near the circle.  More terms are needed to get convergence near the circle  |z|< 1.  We can see what is happening in the disk  |z|< 0.9.

\(
\(PolarMap[
        L1, {0, 0.9, 
          0.15}, {\(-π\), \ π, \ π\/12}, 
PlotRange -> {{1, 2}, {\(-0.5\), 0.5}}, 
        AspectRatio -> 
          1, 
Ticks -> {Range[1, 2, 1], 
            Range[\(-1\), 1, 
              1]}, 
AxesLabel -> {"u", "v"}, 
        PlotStyle -> {Cyan, Blue}];\)\ \)
\(\(Print[\*""w = = \!\(L\_1\)[z] = "", 
        L1[z], ",  where |z| < 0.9"];\)\ \)

Laurent Series (ii).  The second Laurent series  (Subscript[L, 2])[z]  =  (Subscript[S, 12])[z] + (Subscript[S, 21])[z]  is valid for  1 <  | z | < 2.

L2[z_]  =  
        S12[z]  +  S21[z]; 
Print[" f[z] = ", f[z], " = ", 
        A]; 
Print[""]; 
\(\(Print[\*""\!\(L\_2\)[z] = ... + "", \ S12[z]\ , " + ", 
        S21[z], " + ..."];\)\ \)

We can use Mathematica to investigate how well the Laurent series is "converging" for real numbers.

\(
\(Plot[{f[x], L2[x]}, {x, 1.0001, 
          1.9999}, 
\ \ PlotRange -> {{1, 2}, {0, 7}}, 
        Ticks -> {Range[1, 2, 0.2], Range[0, 7, 1]}, 
        PlotStyle -> {Red, Green}, 
        AxesLabel -> {"x", "s"}];\)\ \)
\(\(Print["s = ", 
        f[x], \*""  and  s = \!\(L\_2\)[x]""];\)\ \)
\(\(Print[\*""\!\(L\_2\)[x] = "", 
        L2[x]];\)\ \)

We can use Mathematica to investigate how well the complex Laurent series is "converging" in the complex plane.
For the second series we need to be in the middle of the annulus  1 <  | z | < 2.   For convenience we choose  1.3 <  | z | < 1.6.

\(
\(PolarMap[
        L2, {1.3, 1.6, 
          0.05}, {\(-π\), \ π, \ π\/12}, 
PlotRange -> {{0.63, 2.93}, {\(-1.15\), 1.15}}, 
        AspectRatio -> 
          1, 
Ticks -> {Range[1, 3, 1\/2], 
            Range[\(-1\), 1, 1]}, AxesLabel -> {"u", "v"}, 
        PlotStyle -> {DarkGreen, Green}];\)\ \)
\(\(Print[\*""w = = \!\(L\_2\)[z] = "", 
        L2[z], ",  where 1.3 < |z| < 1.6"];\)\ \)
\(\(PolarMap[
        f, {1.3, 1.6, 
          0.05}, {\(-π\), \ π, \ π\/12}, 
PlotRange -> {{0.63, 2.93}, {\(-1.15\), 1.15}}, 
        AspectRatio -> 
          1, 
Ticks -> {Range[1, 3, 1\/2], 
            Range[\(-1\), 1, 
              1]}, 
AxesLabel -> {"u", "v"}, 
        PlotStyle -> {Magenta, Pink}];\)\ \)
Print["w = f[z] = ", 
        f[z], ",  where 1.3 < |z| < 1.6"];

Hence (Subscript[L, 2])[z] is an approximation to  f[z] = (3/(2  +  z  -  (z^2))) = 
          (1/(z  +  1)) - (1/(z  -  2))  valid for  1 <  | z | < 2.   
Notice that the first series  (Subscript[L, 1])[z]  is NOT a good approximation in  1 <  | z | < 2,  for illustration, it is NOT accurate at  z = 1.5.

Print[" f[1.5] = ", f[1.5]]; 
\(\(Print[\*""\!\(L\_1\)[1.5] = "", 
        L1[1.5]];\)\ \)
Print[""]; 
Print[" f[1.5] = ", f[1.5]]; 
\(\(Print[\*""\!\(L\_2\)[1.5] = "", 
        L2[1.5]];\)\ \)

Laurent Series (iii).  The third Laurent series  (Subscript[L, 3])[z]  =  (Subscript[S, 12])[z] + (Subscript[S, 22])[z]  is valid for  2 <  | z | .

L3[z_]  =  
        S12[z]  +  S22[z]; 
Print[" f[z] = ", f[z], " = ", 
        A]; 
Print[""]; 
\(\(Print[\*""\!\(L\_3\)[z] = ... "", 
        L3[z]];\)\ \)

We can use Mathematica to investigate how well the Laurent series is "converging" for real numbers.

\(
\(Plot[{f[x], L3[x]}, {x, 2.0001, 
          5.0}, 
\ \ PlotRange -> {{2, 5}, {\(-6\), 0}}, 
        Ticks -> {Range[2, 5, 0.5], Range[\(-6\), 0, 1]}, 
        PlotStyle -> {Red, Green}, 
        AxesLabel -> {"x", "s"}];\)\ \)
\(\(Print["s = ", 
        f[x], \*""  and  s = (Subscript[L, 3])[x], for 2 < x ≤ 5""];\)\ \)
\(\(Print[\*""\!\(L\_3\)[x] = "", 
        L3[x]];\)\ \)

We can use Mathematica to investigate how well the complex Laurent series is "converging" in the complex plane.
For the third series z must satisfy  2 <  | z | .  For convenience we choose  3 <  | z | .

\(
\(PolarMap[
        L3, {3, 5, 
          0.5}, {\(-π\), \ π, \ π\/12}, 
PlotRange -> {{\(-0.8\), 0.4}, {\(-0.6\), 0.6}}, 
        AspectRatio -> 
          1, 
Ticks -> {Range[1, 2, 0.5], 
            Range[\(-1\), 1, 1]}, AxesLabel -> {"u", "v"}, 
        PlotStyle -> {DarkGreen, Green}];\)\ \)
\(Print[\*""w = = (Subscript[L, 3])[z] = "", 
      L3[z], ",  where 3 < |z| < 5"]; \ 
    PolarMap[f, {3, 5, 
        0.5}, {\(-π\), \ π, \ π\/12}, 
PlotRange -> {{\(-0.8\), 0.4}, {\(-0.6\), 0.6}}, 
      AspectRatio -> 
        1, 
Ticks -> {Range[1, 2, 0.5], 
          Range[\(-1\), 1, 
            1]}, 
AxesLabel -> {"u", "v"}, 
      PlotStyle -> {Magenta, Pink}];\ \)
Print["w = f[z] = ", 
        f[z], ",  where 3 < |z| < 5"];

Aside. If z is NOT large enough to then the series (Subscript[L, 3])[z] will not converge rapidly.  More terms are needed to get convergence near  |z| =  2.    We can see what is happening in the annulus  2.2  <  | z |  <  4.

\(
\(PolarMap[
        L3, {2.2, 4, 
          0.2}, {\(-π\), \ π, \ π\/12}, 
PlotRange -> {{\(-0.8\), 0.4}, {\(-0.6\), 0.6}}, 
        AspectRatio -> 
          1, 
Ticks -> {Range[1, 2, 0.5], 
            Range[\(-1\), 1, 1]}, AxesLabel -> {"u", "v"}, 
        PlotStyle -> {Cyan, Blue}];\)\ \)
\(\(Print[\*""w = = \!\(L\_3\)[z] = "", 
        L3[z], ",  where 2.2 < |z| < 4"];\)\ \)

So  (Subscript[L, 3])[z]  is an approximation to  f[z] = (3/(2  +  z  -  (z^2))) = 
          (1/(z  +  1)) - (1/(z  -  2))  valid for  2 <  | z | .  
Notice that (Subscript[L, 1])[z]  and  (Subscript[L, 2])[z] are NOT good approximations for  2 <  | z | ,  for illustration they are NOT accurate at  z = 4.0

Print[" f[4.0] = ", f[4.0]]; 
\(\(Print[\*""\!\(L\_1\)[4.0] = "", 
        L1[4.0]];\)\ \)
Print[""]; 
Print[" f[4.0] = ", f[4.0]]; 
\(\(Print[\*""\!\(L\_2\)[4.0] = "", 
        L2[4.0]];\)\ \)
Print[""]; 
Print[" f[4.0] = ", f[4.0]]; 
\(\(Print[\*""\!\(L\_3\)[4.0] = "", 
        L3[4.0]];\)\ \)

Divergent Series Combination (iv).  Aside.  The fourth possibility  (Subscript[S, 11])[z] + (Subscript[S, 22])[z]  does NOT converge for any values of z and should NOT be considered, however you could write down a few terms and think about why this series diverges.

L4[z_]  =  S11[z]  +  S22[z]; 
\(\(Print[\*""\!\(L\_4\)[z] = "", "... ", S22[z], " + ", 
        S11[z], " - ..."];\)\ \)

In the above series, when  |z|< (1/2)  the portion of the series with positive exponents will converge but the portion with negative exponents will diverge. Similarly, when  |z|> 1  the portion of the series with negative exponents will converge, but the portion of the series with positive exponents will diverge.   Hence, the series diverges for all  z.  It does NOT approximate  f[z]  at any of the values x = 0.5, 1.5, 4.0

Print[" f[0.5] = ", f[0.5]]; 
\(\(Print[\*""\!\(L\_4\)[0.5] = "", 
        L4[0.5]];\)\ \)
Print[""]; 
Print[" f[1.5] = ", f[1.5]]; 
\(\(Print[\*""\!\(L\_4\)[1.5] = "", 
        L4[1.5]];\)\ \)
Print[""]; 
Print[" f[4.0] = ", f[4.0]]; 
\(\(Print[\*""\!\(L\_4\)[4.0] = "", 
        L4[4.0]];\)\ \)

Example 7.8,  Page 286.  Find the Laurent series for f (z) = ((cos (z)  -  1)/(z^4)).

Solution 7.8.

Enter the function  f[z] = ((Cos[z]  -  1)/(z^4)) and find the first few terms of the Laurent series in the punctured plane  0 < z.

Remove[z]; 
Clear[f, L, S, S10, S∞]; 
f[z_]  =  ((Cos[z]  -  1)/(z^4)); 
S[z_]  =  Normal[Series[Cos[z] - 1,  {z, 0, 14}]]; 
L[z_]  =  Normal[Series[f[z], {z, 0, 10}]]; 
Print["f[z] = ", f[z]]; 
Print["S[z] = (", S[z], " - ... )/(", 
        (z^4), ")"]; 
Print["L[z] = ", 
        L[z], " + ..."];

The latter Laurent series is valid for  0 < | z | .  

Sum up an infinite number of terms to verify that we have things right.

S10[
          z_]  =  (∑_(n = 1)^7)(((((-1))^n) (z^(2  n - 4)))/((2  n)!)); 
S∞[
          z_]  =   (∑_(n = 1)^∞)(((((-1))^n) (z^(2  n - 4)))/((2  n)!)); 
Print["f[z] = ", f[z]]; 
Print[""]; 
\(\(Print[\*""\!\(S\_10\)[z] = "", 
        S10[z]];\)\ \)
Print[""]; 
\(\(Print[\*""(Subscript[S, ∞])[z] = (∑_(n = 1)^∞)(((((-1))^n) (z^(2  n - 4)))/((2  n)!)) =  "", S∞[z]];\)\ \)
Print[""]; 
\(\(Print[\*""(Subscript[S, ∞])[z] = (∑_(n = 1)^∞)(((((-1))^n) (z^(2  n - 4)))/((2  n)!)) =  "", Together[Expand[S∞[z]]]];\)\ \)

See how closely the series  (Subscript[S, 10])[z]  approximates the function  f[z] = ((Cos[z]  -  1)/(z^4)).

Print["f[0.2]= ", f[0.2]]; 
Print["L[0.2]= ", L[0.2]]; 
Print[""]; 
Print["f[2.0]= ", f[2.0]]; 
Print["L[2.0]= ", L[2.0]];

We can use Mathematica to investigate how well the Laurent series is "converging" for real numbers.

\(

\(Plot[{f[x], L[x]}, {x, 0.0001, 
          15}, 
PlotRange -> {{0, 15}, {\(-10\), 
              0.1}}, 
Ticks -> {Range[0, 15, 2], 
            Range[\(-10\), 0, 2]}, PlotStyle -> {Red, Green}, 
        AxesLabel -> {"x", "s"}];\)\ \)
\(\(Print["s = ", 
        f[x], \*""  and  s = \!\(S\_10\)[x]""];\)\ \)
\(\(Print[\*""\!\(S\_10\)[x] = "", 
        L[x]];\)\ \)

We can use Mathematica to investigate how well the complex Laurent series is "converging" in the complex plane.

CartesianMap[
        S10 , {0.2, 2.2, 0.1}, {-1,  1,  
          0.1}, 
PlotRange -> {{-6, 2}, {-4, 
              4}}, AspectRatio -> 
          1, 
Ticks -> {Range[-7, 3, 1], 
            Range[-5, 5, 1]}, AxesLabel -> {"u", "v"}, 
        PlotStyle -> {DarkGreen, Green}]; 
\(\(Print[\*""w = (Subscript[S, 10])[z] =  "", 
        S10[z], ",  where 0.2 ≤ x ≤ 2.2, -1 ≤ y ≤ 1"];\)\ \)
CartesianMap[
        f, {0.2, 2.2, 0.1}, {-1,  1,  
          0.1}, 
PlotRange -> {{-6, 2}, {-4, 
              4}}, AspectRatio -> 
          1, 
Ticks -> {Range[-7, 3, 1], 
            Range[-5, 5, 1]}, AxesLabel -> {"u", "v"}, 
        PlotStyle -> {Magenta, Pink}]; 
Print["w = f[z] = ", 
        f[z], ",  where 0.2 ≤ x ≤ 2.2, -1 \
≤ y ≤ 1"];

F[z_] = f[z + 1]; 
G[z_] = S10[z + 1]; 
\(\(PolarMap[
        G\ , {0, 0.999, 
          0.1665}, {\(-π\), \ π, \ π\/12}, 
PlotRange -> {{\(-5\), 2}, {\(-3\), 3}}, 
        AspectRatio -> 
          6\/7, 
Ticks -> {Range[\(-5\), 5, 1], 
            Range[\(-5\), 5, 1]}, AxesLabel -> {"u", "v"}, 
        PlotStyle -> {Blue, Cyan}];\)\ \)
\(\(Print[\*""w = \!\(S\_9\)[1+z] =  "", 
        S9[1 + z], ",  where |z| < 0.999"];\)\ \)
\(\(PolarMap[
        F, {0, 0.999, 
          0.1665}, {\(-π\), \ π, \ π\/12}, 
PlotRange -> {{\(-5\), 2}, {\(-3\), 3}}, 
        AspectRatio -> 
          6\/7, 
Ticks -> {Range[\(-5\), 5, 1], 
            Range[\(-5\), 5, 1]}, AxesLabel -> {"u", "v"}, 
        PlotStyle -> {Magenta, Pink}];\)\ \)
Print["w = f[1+z] = ", 
        f[1 + z], ",  where |z| < 0.999"];

Example 7.9,  Page 287.  Find the Laurent series for f (z) = (e^(((-1)/(z^2)))) centered at (Subscript[z, 0]) = 0.

Solution 7.9.

Enter the function  f[z] = (e^(((-1)/(z^2)))) and find the first few terms of the Laurent series in the punctured plane  0 < z.

Remove[z]; 
Clear[f, L, L1, S1]; 
f[z_]  =  (E^(((-1)/(z^2)))); 
L[z_]  =  Normal[Series[f[z], {z, ∞, 20}]]; 
Print["f[z] = ", f[z]]; 
Print[""]; 
Print["L[z] = ... + ", L[z] - 1, " + ", 
        1];

Note that we had to expand the function about ∞ in order to get the negative powers of  z. Also, we can get the Laurent expansion by series substitution:

S1[z_]  =  
        Normal[Series[(E^z), {z, 0, 10}]]; 
L1[z_]  =  S1[((-1)/(z^2))]; 
\(\(Print[\*""   \!\(E\^Z\) = "", 
        S1[Z], " + ..."];\)\ \)
\(\(Print[\*""Use the change of variable Z = ((-1)/(z^2)).""];\)\ \)
Print[""]; 
\(\(Print[\*""\!\(L\_1\)[z] = ... + "", L1[z] - 1, " + ", 
        1];\)\ \)

The above Laurent series is valid for  0 <  | z | .  

We can use Mathematica to investigate how well the Laurent series is "converging" for real numbers.

\(
\(Plot[{f[x], L1[x]}, {x, 0.3, 
          2.0}, 
\ \ PlotRange -> {{0, 2}, {\(-0.1\), 1}}, 
        Ticks -> {Range[0, 2, 0.5], Range[0, 1, 0.2]}, 
        PlotStyle -> {Red, Green}, 
        AxesLabel -> {"x", "s"}];\)\ \)
\(\(Print["s = ", 
        f[x], \*""  and  s = \!\(S\_1\)[x]""];\)\ \)
\(\(Print[\*""\!\(S\_1\)[x] = "", 
        L1[x]];\)\ \)

We can use Mathematica to investigate how well the complex Laurent series is "converging" in the complex plane.
But, we need to stay away from  z=0.  For convenience we use the disk  0.3 <  | z | <0.9.

\(
\(PolarMap[
        L1\ , {0.3, 0.9, 
          0.1}, {\(-\ π\)\/2, \ \(\(\ \)\(π\)\)\/2, \ \(\(\ \)\(π\)\)\/12}, 
PlotRange -> {{\(-5\), 5}, {\(-5\), 5}}, 
        AspectRatio -> 
          1, 
Ticks -> {Range[\(-5\), 5, 1], 
            Range[\(-5\), 5, 1]}, AxesLabel -> {"u", "v"}, 
        PlotStyle -> {DarkGreen, Green}];\)\ \)
\(Print[\*""w = (Subscript[S, 1])[1+z] =  "", 
      S9[1 + z], ",  where 0.3 < |z| < 0.9"]; \ 
    PolarMap[f, {0.3, 0.9, 
        0.1}, {\(-\ π\)\/2, \ \(\(\ \)\(π\)\)\/2, \ \(\(\ \)\(π\)\)\/12}, 
PlotRange -> {{\(-5\), 5}, {\(-5\), 5}}, 
      AspectRatio -> 
        1, 
Ticks -> {Range[\(-5\), 5, 1], 
          Range[\(-5\), 5, 1]}, AxesLabel -> {"u", "v"}, 
      PlotStyle -> {Magenta, Pink}];\ \)
Print["w = f[1+z] = ", 
        f[1 + z], ",  where 0.3 < |z| < 0.9"];

Library Research Experience for Undergraduates

Project I. Write a report on Laurent series.

1. Lehner, Joseph, ''Note on the Laurent Series (in Math. Notes),'' Am. Math. M., Vol. 57, No. 3. (Mar., 1950), pp. 177-179, Jstor.   

2. Osborn, Howard, ''A Remark on Laurent Expansions (in Math. Notes),'' Am. Math. M., Vol. 65, No. 1. (Jan., 1958), p. 28, Jstor.   

3. Western, D. W., ''An Extension of the Laurent Expansion Am. Math. M., Vol. 48, No. 7. (Aug. - Sep., 1941), pp. 444-450, Jstor.

Section 7.3  Exercises for Laurent Series Representations
See textbook page 287.

Section 7.4	Singularities, Zeros and Poles

Section 7.5	Applications of Taylor and Laurent Series

GO TO  THE  Table of Contents