C07-3.mws

COMPLEX ANALYSIS: Maple Worksheets, 2001
(c) John H. Mathews Russell W. Howell
mathews@fullerton.edu howell@westmont.edu

Complimentary software to accompany the textbook:

COMPLEX ANALYSIS: for Mathematics & Engineering, 4th Ed, 2001, ISBN: 0-7637-1425-9
Jones and Bartlett Publishers, Inc., 40 Tall Pine Drive, Sudbury, MA 01776
Tele. (800) 832-0034; FAX: (508) 443-8000, E-mail: mkt@jbpub.com, http://www.jbpub.com/


CHAPTER 7 TAYLOR and LAURENT SERIES

Section 7.3a Laurent Series Representations

Suppose f(z) is not analytic in D[R](a) but is analytic in the punctured disk D[R]^`*`*`(a)` ={ `z: 0` `` < `` abs(z-alpha) < R }. For example, the function f(z) = exp(z)/(z^3) is not analytic when z = 0 but is analytic for 0 < abs(z) . Clearly, this function does not have a Maclaurin series representation. If we use the Maclaurin series for g(z) = exp(z) however, and formally divide each term in that series by z^3 , we obtain the representation

f(z) = 1/(z^3) exp(z) = 1/(z^3) + 1/(z^2) + 1/2!/z + 1/3! + z/4! + z^2/5! + z^3/6! + `...`

which is valid for all z such that 0 < abs(z) . 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(alpha,r,R) = { `z:  r` `` < `` abs(z-alpha) < R }.


Perhaps we can represent these functions with a series that employs negative powers of
z in some way as we did with f(z) . As you will see shortly, this is indeed the case. We begin by defining a series that allows for negative powers of z .

Theorem 7.7 (Laurent series)

Suppose the Laurent series sum(c[n]*(z-alpha)^n,n = -infinity .. infinity) converges on an annulus `A(r,R,`*alpha*`)` = {`z : r <`*abs(z-alpha) < R} .

Then the series converges uniformly on any subannulus `A(s,t,`*alpha*`)` = {`z : s <=`*abs(z-alpha)*` <= t`} where `r < s < t < R` .

Example on page 280. Find the Laurent series for f(z) = exp(z)/(z^3) .

> f:='f': z:='z':
f := z -> exp(z)/z^3:
`f(z) ` = f(z);

`f(z) ` = exp(z)/z^3

The following Laurent series is valid for 0 < abs(z) .

> L:='L': s:='s': S:='S': z:='z': Z:='Z':
s := taylor(exp(z), z=0, 9)/z^3:
`f(z) ` = exp(z)/z^3;
`f(z) ` = s;
s := series(exp(z)/z^3, z=0, 9):
`f(z) ` = s;
S := series(exp(Z)/Z^3, Z=0, 9):
S := convert(S, polynom):
LS := z -> subs(Z=z,S):
L[5](z) = LS(z);

`f(z) ` = exp(z)/z^3

`f(z) ` = (series(1+1*z+1/2*z^2+1/6*z^3+1/24*z^4+1/120*z^5+1/720*z^6+1/5040*z^7+1/40320*z^8+O(z^9),z,9))/z^3

`f(z) ` = series(1*z^(-3)+1*z^(-2)+1/2*z^(-1)+1/6+1/24*z+1/120*z^2+1/720*z^3+1/5040*z^4+1/40320*z^5+O(z^6),z,6)

L[5](z) = 1/(z^3)+1/(z^2)+1/2/z+1/6+1/24*z+1/120*z^2+1/720*z^3+1/5040*z^4+1/40320*z^5

Sum up the terms to verify that we have things right.

> L5 := z -> sum(z^(n-3)/n!, n=0..8):
L0 := z -> sum(z^(n-3)/n!, n=0..infinity):
`f(z) ` = exp(z)/z^3;
L[5](z),` = `,Sum(z^(n-3)/n!, n=0..8) = L5(z);
L[infinity](z),` = `,Sum(z^(n-3)/n!, n=0..infinity) = L0(z);

`f(z) ` = exp(z)/z^3

L[5](z), ` = `, Sum(z^(n-3)/n!,n = 0 .. 8) = 1/(z^3)+1/(z^2)+1/2/z+1/6+1/24*z+1/120*z^2+1/720*z^3+1/5040*z^4+1/40320*z^5

L[infinity](z), ` = `, Sum(z^(n-3)/n!,n = 0 .. infinity) = exp(z)/z^3

We can plot the real functions y = f(x) and y = L(x)
to get the idea that
L[5](x) is an approximation to f(x) .

> plot({f(x),LS(x)},
x=0.01..8, y=0..25,
title=`y=exp(x)/x^3 and y=L5(x)`,
labels=[` x`,`y `],
tickmarks=[8,4],
view=[0..8,0..25]);

[Maple Plot]

Theorem 7.8 (Laurent's theorem) Suppose 0 <= `r < R` , and that f(z) is analytic in the annulus `A = A(r,R,`*alpha*`)` = {`z : r <`*abs(z-alpha) < R} .

If rho is any number such that `r < `*rho < R , then for all z[0]*epsilon*`A(r,R,`*alpha*`)` , f(z) has the Laurent series representation

f(z) = sum(c[n]*(z-alpha)^n,n = -infinity .. infinity) = sum(c[-n]*(z-alpha)^(-n),n = 1 .. infinity)+sum(c[n]*(z-alpha)^n,n = 0 .. infinity) ,

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

c[-n] = 1/(2*pi*i) int(f(z)/((z-alpha)^(-n+1)),z = C^`+`*` `[rho](alpha) .. `.`)

and

c[n] = 1/(2*pi*i) int(f(z)/((z-alpha)^(n+1)),z = C^`+`*` `[rho](alpha) .. `.`) .

Theorem 7.9 (Uniqueness and differentiation of Larent series)

Suppose that f(z) is analytic in the annulus A(r,R,alpha) , and has the Laurent series representation

f(z) = sum(c[n]*(z-alpha)^n,n = -infinity .. infinity) for all z*epsilon*A(r,R,alpha) .
(i) If f(z) = sum(b[n]*(z-alpha)^n,n = -infinity .. infinity) for all z*epsilon*A(r,R,alpha) , then b[n] = c[n] for all n.
(In other words, the Laurent series for
f(z) in a given annulus is unique.)
(ii) For all z*epsilon*A(r,R,alpha) , the derivatives for f(z) may be obtained by termwise
differentiation of its Laurent series.


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

> f:='f': z:='z':
f := z -> 3/(1+z)/(2-z):
`f(z)` = f(z);

`f(z)` = 3*1/((1+z)*(2-z))

Maple easily finds the Maclaurin series involving positive powers of z :

> L:='L': Z:='Z':
s0 := z -> subs(Z=z, series(f(Z), Z=0, 6)):
`f(z) ` = f(z);
`f(z) ` = s0(z);
S0 := convert(s0(Z), polynom):
L0 := z -> subs(Z=z,S0):
L[0](z) = L0(z);

`f(z) ` = 3*1/((1+z)*(2-z))

`f(z) ` = series(3/2-3/4*z+9/8*z^2-15/16*z^3+33/32*z^4-63/64*z^5+O(z^6),z,6)

L[0](z) = 3/2-3/4*z+9/8*z^2-15/16*z^3+33/32*z^4-63/64*z^5

The above series converges for abs(z) < 1 , this requires looking at the sum of the two"geometric series"
that form the parts of
L[0](z) . Maple 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 .

> Z:='Z':
Se := series(f(1/Z), Z=0, 7):
s1 := z -> subs(Z=1/z,Se):
`f(z) ` = f(z);
`f(z) ` = s1(z);
S1 := convert(series(f(1/Z), Z=0, 7), polynom):
S1 := subs(Z=1/Z,S1):
L1 := z -> subs(Z=z,S1):
L[1](z) = L1(z);

`f(z) ` = 3*1/((1+z)*(2-z))

`f(z) ` = -3*1/(z^2)-3/z^3-9/z^4-15/z^5-33/z^6+O(1/(z^7))

L[1](z) = -3*1/(z^2)-3/z^3-9/z^4-15/z^5-33/z^6

Or we can use Maple and expand f(z) about z = infinity .

> `f(z) ` = f(z);
`f(z) ` = series(f(z), z=infinity, 7);

`f(z) ` = 3*1/((1+z)*(2-z))

`f(z) ` = -3*1/(z^2)-3/z^3-9/z^4-15/z^5-33/z^6+O(1/(z^7))

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

> F:='F': f1:='f1': f2:='f2':
A := convert(f(z), parfrac, z): `f(z) ` = A;
f1 := z -> 1/(1+z): F[1](z) = f1(z);
f2 := z -> -1/(z-2): F[2](z) = f2(z);

`f(z) ` = 1/(1+z)-1/(-2+z)

F[1](z) = 1/(1+z)

F[2](z) = -1/(-2+z)

Now form Laurent expansions for the two parts F[1](z) and F[2](z) of f(z) .

> S:='S': Z:='Z':
S11 := series(f1(z), z=0, 20):
S11 := convert(S11, polynom):
S[11](z) = S11;
S12 := series(f1(z), z=infinity, 18):
S12 := series(f1(1/Z), Z=0, 18):
S12 := convert(S12, polynom):
S12 := subs(Z=1/z,S12):
S[12](z) = S12;
S21 := series(f2(z), z=0, 12):
S21 := convert(S21, polynom):
S[21](z) = S21;
S22 := series(f2(z), z=infinity, 12):
S22 := series(f2(1/Z), Z=0, 12):
S22 := convert(S22, polynom):
S22 := subs(Z=1/z,S22):
S[22](z) = S22;

S[11](z) = 1-z+z^2-z^3+z^4-z^5+z^6-z^7+z^8-z^9+z^10-z^11+z^12-z^13+z^14-z^15+z^16-z^17+z^18-z^19

S[12](z) = 1/z-1/(z^2)+1/(z^3)-1/(z^4)+1/(z^5)-1/(z^6)+1/(z^7)-1/(z^8)+1/(z^9)-1/(z^10)+1/(z^11)-1/(z^12)+1/(z^13)-1/(z^14)+1/(z^15)-1/(z^16)+1/(z^17)

S[21](z) = 1/2+1/4*z+1/8*z^2+1/16*z^3+1/32*z^4+1/64*z^5+1/128*z^6+1/256*z^7+1/512*z^8+1/1024*z^9+1/2048*z^10+1/4096*z^11

S[22](z) = -1/z-2/z^2-4/z^3-8/z^4-16/z^5-32/z^6-64/z^7-128/z^8-256/z^9-512/z^10-1024/z^11

The Laurent series L[1](z) = S[11](z)+S[21](z) is valid for abs(z) < 1 .

> Z:='Z':
s1 := subs(z=Z,S11+S21):
L1 := z -> subs(Z=z,s1):
`f(z) ` = f(z);
L[1](z) = L1(z);

`f(z) ` = 3*1/((1+z)*(2-z))

L[1](z) = -3/4*z-15/16*z^3+9/8*z^2+33/32*z^4-63/64*z^5+3/2+z^12-z^13+z^14-z^15+z^16-z^17+z^18-z^19+129/128*z^6-255/256*z^7+513/512*z^8-1023/1024*z^9+2049/2048*z^10-4095/4096*z^11

> plot({f(x),L1(x)},x=0.0..1,
title=`s = f(x), s = L1(x)`,
tickmarks=[5,3],
view=[0..1,1.3..1.5]);

[Maple Plot]

The following Laurent series L[2](z) = S[12](z)+S[21](z) is valid for `1 < |z| < 2` .

> Z:='Z':
s2 := subs(z=Z,S12+S21):
L2 := z -> subs(Z=z,s2):
`f(z) ` = f(z);
L[2](z) = L2(z);

`f(z) ` = 3*1/((1+z)*(2-z))

L[2](z) = 1/2-1/(z^16)+1/(z^17)-1/(z^8)+1/(z^9)+1/(z^13)-1/(z^14)+1/(z^15)-1/(z^10)+1/(z^11)-1/(z^12)+1/(z^5)-1/(z^6)+1/(z^7)-1/(z^4)+1/4*z+1/16*z^3+1/8*z^2+1/32*z^4+1/64*z^5+1/(z^3)-1/(z^2)+1/z+1/128*...
L[2](z) = 1/2-1/(z^16)+1/(z^17)-1/(z^8)+1/(z^9)+1/(z^13)-1/(z^14)+1/(z^15)-1/(z^10)+1/(z^11)-1/(z^12)+1/(z^5)-1/(z^6)+1/(z^7)-1/(z^4)+1/4*z+1/16*z^3+1/8*z^2+1/32*z^4+1/64*z^5+1/(z^3)-1/(z^2)+1/z+1/128*...

> plot({f(x),L2(x)},x=1.01..1.99,
title=`s = f(x), s = L2(x)`,
tickmarks=[5,3],
view=[1..2,1.5..4]);

[Maple Plot]

So L[2](z) is an approximation to f(z) valid for `1 < |z| < 2` . Notice that L[1](z) is
NOT a good approximation for `1 < |z| < 2` , for example it is not accurate at z = 1.5 .

> `f(1.5) L1(1.5)`;
f(1.5) <> L1(1.5); ` `;
`f(1.5) ~ L2(1.5)`;
f(1.5), `~` , L2(1.5);

`f(1.5)          L1(1.5)`

2.400000000 <> -1327.766045

` `

`f(1.5)  ~  L2(1.5)`

2.400000000, ~, 2.337053280

The Laurent series L[3](z) = S[12](z)+S[22](z) is valid for 2 < abs(z) .

> Z:='Z':
s3 := subs(z=Z,S12+S22):
L3 := z -> subs(Z=z,s3):
`f(z) ` = f(z);
L[3](z) = L3(z);

`f(z) ` = 3*1/((1+z)*(2-z))

L[3](z) = -1/(z^16)+1/(z^17)-129/z^8-255/z^9+1/(z^13)-1/(z^14)+1/(z^15)-513/z^10-1023/z^11-1/(z^12)-15/z^5-33/z^6-63/z^7-9/z^4-3/z^3-3/z^2

> plot({f(x),L3(x)},x=2.01..4.0,
title=`s = f(x), s = L3(x)`,
tickmarks=[2,6],
view=[2..4,-5..0]);

[Maple Plot]

So L[3](z) is an approximation to f(z) valid for 2 < abs(z) . Notice that L[1](z) and L[2](z)
are
NOT good approximations for 2 < abs(z) , for example they are not accurate at z = 4.0 .

> `f(4.0) L1(4.0)`;
f(4.0) <> L1(4.0);` `;
`f(4.0) L2(4.0)`;
f(4.0) <> L2(4.0);` `;
`f(4.0) ~ L3(4.0)`;
f(4.0), `~` , L3(4.0);

`f(4.0)          L1(4.0)`

-.3000000000 <> -.2199023234e12

`  `

`f(4.0)          L2(4.0)`

-.3000000000 <> 2047.700001

`  `

`f(4.0)  ~  L3(4.0)`

-.3000000000, ~, -.2997558594

The fourth possibility 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.

> Z:='Z':
s4 := subs(z=Z,S11+S22):
L4 := z -> subs(Z=z,s4):
L[4](z) = L4(z);

L[4](z) = 1-128/z^8-256/z^9-512/z^10-1024/z^11-16/z^5-32/z^6-64/z^7-8/z^4-z-z^3+z^2+z^4-z^5-4/z^3-2/z^2-1/z+z^12-z^13+z^14-z^15+z^16-z^17+z^18-z^19+z^6-z^7+z^8-z^9+z^10-z^11

In the above series, when abs(z) < 1/2 the portion of the series with positive exponents will converge
but the portion with negative exponents will diverge. Similarly, when
1 < abs(z) 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 .

> `f(0.5) L4(0.5)`;
f(0.5) <> L4(0.5);` `;
`f(1.5) L4(1.5)`;
f(1.5) <> L4(1.5);` `;
`f(4.0) L4(4.0)`;
f(4.0) <> L4(4.0);

`f(0.5)          L4(0.5)`

1.333333334 <> -2796201.333

`  `

`f(1.5)          L4(1.5)`

2.400000000 <> -1375.056630

`  `

`f(4.0)          L4(4.0)`

-.3000000000 <> -.2199023255e12


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

> f:='f': z:='z':
f := z ->(cos(z) - 1)/z^4:
`f(z) ` = f(z);

`f(z) ` = (cos(z)-1)/z^4

The following Laurent series is valid for 0 < abs(z) .

> L:='L': s:='s': S:='S': Z:='Z':
S := series(cos(Z)-1, Z=0, 12)/Z^4:
s := convert(series(cos(Z)-1, Z=0, 12), polynom)/Z^4:
LS := z -> subs(Z=z,expand(s)):
`f(z) ` = f(z);
`f(z) ` = subs(Z=z,S);
`f(z) ` = series((cos(z) - 1)/z^4, z=0, 12);
L[6](z) = LS(z);

`f(z) ` = (cos(z)-1)/z^4

`f(z) ` = (series(-1/2*z^2+1/24*z^4-1/720*z^6+1/40320*z^8-1/3628800*z^10+O(z^12),z,12))/z^4

`f(z) ` = series(-1/2*z^(-2)+1/24-1/720*z^2+1/40320*z^4-1/3628800*z^6+O(z^8),z,8)

L[6](z) = -1/2*1/(z^2)+1/24-1/720*z^2+1/40320*z^4-1/3628800*z^6

Sum up the terms to verify that we have things right.

> L8 := z -> sum((-1)^n * z^(2*n-4)/(2*n)!, n=1..6):
L0 := z -> sum((-1)^n * z^(2*n-4)/(2*n)!, n=1..infinity):
`f(z) ` = (cos(z) - 1)/z^4;
L[8](z),` = `,
Sum((-1)^n * z^(2*n-4)/(2*n)!, n=1..6) = L8(z);
L[infinity](z),` = `,
Sum((-1)^n * z^(2*n-4)/(2*n)!, n=1..infinity) = L0(z);

`f(z) ` = (cos(z)-1)/z^4

L[8](z), ` = `, Sum((-1)^n*z^(2*n-4)/(2*n)!,n = 1 .. 6) = -1/2*1/(z^2)+1/24-1/720*z^2+1/40320*z^4-1/3628800*z^6+1/479001600*z^8

L[infinity](z), ` = `, Sum((-1)^n*z^(2*n-4)/(2*n)!,n = 1 .. infinity) = -1/2/z^(7/2)*StruveH(1/2,z)*Pi^(1/2)*2^(1/2)

Compare the graph of the function and its Laurent series.

> plot({f(x),LS(x)}, x=0.01..5.0,
title=`y = f(x), y = L8(x)`,
tickmarks=[5,4],
view=[0..4,-20..0]);

[Maple Plot]

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

> f := 'f': S:='S': z:='z':
f := z -> exp(-1/z^2):
S := series(f(z), z=infinity, 12):
`f(z) ` = f(z);
`f(z) ` = S;

`f(z) ` = exp(-1/(z^2))

`f(z) ` = 1-1/(z^2)+1/2/z^4-1/6*1/(z^6)+1/24/z^8-1/120*1/(z^10)+O(1/(z^12))

We can get the Laurent expansion by series substitution:

> P:='P': Z:='Z':
S1 := taylor(exp(Z), Z=0, 7):
S1 := convert(S1,polynom):
`F(Z) ` = exp(Z);
P[6](Z) = S1;

`F(Z) ` = exp(Z)

P[6](Z) = 1+Z+1/2*Z^2+1/6*Z^3+1/24*Z^4+1/120*Z^5+1/720*Z^6

Make the substitution Z = -1/(z^2) to get the Laurent series is valid for 0 < abs(z) .

> L:='L': Z:='Z':
L1 := z -> subs(Z=-1/z^2,S1):
`f(z) ` = f(z);
L[12](z) = L1(z);

`f(z) ` = exp(-1/(z^2))

L[12](z) = 1-1/(z^2)+1/2/z^4-1/6*1/(z^6)+1/24/z^8-1/120*1/(z^10)+1/720/z^12

Or we can get the Laurent expansion by series expansion about infinity:

> L2 := taylor(exp(-1/z^2), z=infinity, 14):
`f(z) ` = f(z);
`f(z) ` = L2;

`f(z) ` = exp(-1/(z^2))

`f(z) ` = 1-1/(z^2)+1/2/z^4-1/6*1/(z^6)+1/24/z^8-1/120*1/(z^10)+1/720/z^12+O(1/(z^14))

> plot({f(x),L1(x)}, x=0.5..4.0,
title=`y = f(x), y = L12(x)`,
tickmarks=[5,4],
view=[0..4,0..1.5]);

[Maple Plot]

End of Section 7.3.