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 5 ELEMENTARY FUNCTIONS

Section 5.2 Branches of the Complex Logarithm Function

In Section 5.1 we showed that if w is a nonzero complex number the equation w = exp(z) has infinitely many solutions. Because the function `exp(z)` is a many-to-one function, its inverse (the logarithm) is necessarily multivalued.

 

Load Maple's "cylinderplot" and "conformal mapping" procedures.
Make sure this is done only ONCE during a Maple session.

> with(plots):

 

Warning, the name changecoords has been redefined

 

Definition 5.2: Multivalued logarithm

 

For z <> 0 , we define the multivalued function log as the inverse of the exponential function; that is,

 

`log(z) = w` if and only if `z = exp(w)` .

 

Definition 5.3: Principal value of the logarithm

 

For z <> 0 , we define the single-valued function Log , the principal value of the logarithm, by

 

`Log(z) = ln|z| + i Arg(z)` .

 

 

The domain for the function Log is the set of all nonzero complex numbers in the z -plane, and its range is the horizontal strip `{w: ` -pi < `Im(w)` <= pi `}`

in the w -plane. We stress again that Log is a single-valued function and corresponds to setting n = 0 in the above definition. As we saw in Chapter 2, the function Arg is discontinuous at each point along the negative x -axis, hence so is the function Log . In fact, because any branch of the multi-valued function arg is discontinuous along some ray, a corresponding branch of the logarithm will have a discontinuity along that same ray.

 

 

Example for Page 170.

 

> r:='r': t:='t': u:='u': U:='U':
v:='v': V:='V': w:='w': x:='x': y:='y':
w := log(x + I*y):
`Log(z) ` = w;
w := evalc(log(x + I*y)):
`Log(z) ` = w;

`Log(z) ` = ln(x+I*y)

`Log(z) ` = 1/2*ln(x^2+y^2)+I*arctan(y,x)

> u := proc(x,y) ln(x^2+y^2)/2 end:
v := proc(x,y) arctan(y,x) end:
`Log(z) ` = u(x,y) + I*v(x,y);
U := proc(r,t) ln(r) end:
V := proc(r,t) t end:
`z ` = r*exp(I*t);
`Log(z) ` = U(r,t) + I*V(r,t);

`Log(z) ` = 1/2*ln(x^2+y^2)+I*arctan(y,x)

`z ` = r*exp(I*t)

`Log(z) ` = ln(r)+I*t

 

To plot the function U = log(abs(z)) we need to solve
for
r as a function of u , that is: r = exp(u) and use a "cylinderplot."

> cylinderplot(exp(u) ,t=0..2*Pi,u=-2..1,
title=`u(x,y) = ln|z| = ln(r)`);

[Maple Plot]

 

 

Example 5.3, Page 170. Find Log(1+i) and log(1+i) .

> w:='w': z:='z':
z := 1+I:
`z ` = z;
w := log(z):
`Log(z) ` = w;
w := evalc(log(z)):
`Log(z) ` = w;

`z ` = 1+I

`Log(z) ` = ln(1+I)

`Log(z) ` = 1/2*ln(2)+1/4*I*Pi

 

The best we can do for the multivalued log(1+i) is to add i*2*pi*n .

> w:='w': z:='z':
z := 1+I:
`z ` = z;
w := log(z) + I*2*Pi*n:
`log(z) ` = w;
w := evalc(log(z)) + I*2*Pi*n:
`log(z) ` = w;

`z ` = 1+I

`log(z) ` = ln(1+I)+2*I*Pi*n

`log(z) ` = 1/2*ln(2)+1/4*I*Pi+2*I*Pi*n

 

The transformation w = Log(z) maps the punctured z -plane slit along the ray
y = 0 , x <= 0 , one-to-one and onto the horizontal strip -pi < Im(w) < pi in the w -plane.

The following graph is the image of the disk
abs(z) <= 100 slit along the ray y = 0 , x <= 0 .

> f:='f': z:='z':
f := z -> log(z):
`f(z) ` = f(z);
conformal(f(Re(z)*exp(I*Im(z))), z=0.01-I*3.14..100+I*3.14,
title=`w = log(z)`,
grid=[13,13],numxy=[13,13],
scaling=constrained,
labels=[` u`,`v `],
tickmarks=[5,7],
view=[-4.7..4.7,-3.2..3.2]);

`f(z) ` = ln(z)

[Maple Plot]

 

 

Example 5.4, Page 170. (a) Find Log(-e) .

> w:='w': z:='z':
z := -exp(1):
`z ` = z;
w := log(z):
`Log(z) ` = w;
w := evalc(log(z)):
`Log(z) ` = w;
w := ln(abs(z)) + I*argument(z):
`ln|z| + I Arg(z) ` = w;

`z ` = -exp(1)

`Log(z) ` = ln(-exp(1))

`Log(z) ` = 1+I*Pi

`ln|z| + I Arg(z) ` = 1+I*Pi

 

(b) Find Log(-1) .

> w:='w': z:='z':
z := -1:
`z ` = z;
w := log(z):
`Log(z) ` = w;
w := ln(abs(z)) + I*argument(z):
`ln|z| + I Arg(z) ` = w;

`z ` = -1

`Log(z) ` = I*Pi

`ln|z| + I Arg(z) ` = I*Pi

 


Example 5.5, Page 171. Verify that Log(z[1]*z[2]) <> Log(z[1])+Log(z[2]) .

> z:='z':
z1 := -sqrt(3) + I: z[1] = z1;
z2 := - 1 + I*sqrt(3): z[2] = z2;
w1 := log(z1) + log(z2):
log(z1) = evalc(log(z1));
log(z2) = evalc(log(z2));
Log(z[1]) + Log(z[2]) = w1;
w1 :=evalc(w1):
Log(z[1]) + Log(z[2]) = w1; ` `;
z3 := z1*z2:
w3 := log(z3):
Log(z[1]*z[2]) = w3;
z4 := evalc(z3):
w4 := log(z4):
Log(z[1]*z[2]) = w4;
w4 := evalc(w4):
Log(z[1]*z[2]) = w4; ` `;
`Does Log(z1) + Log(z2) = Log(z1 z2) ?`;
w1 = w4;
evalb(w1 = w4);

z[1] = -sqrt(3)+I

z[2] = -1+I*sqrt(3)

ln(-sqrt(3)+I) = 1/2*ln(4)+5/6*I*Pi

ln(-1+I*sqrt(3)) = 1/2*ln(4)+2/3*I*Pi

Log(z[1])+Log(z[2]) = ln(-sqrt(3)+I)+ln(-1+I*sqrt(3...

Log(z[1])+Log(z[2]) = ln(4)+3/2*I*Pi

` `

Log(z[1]*z[2]) = ln((-sqrt(3)+I)*(-1+I*sqrt(3)))

Log(z[1]*z[2]) = ln(-4*I)

Log(z[1]*z[2]) = ln(4)-1/2*I*Pi

` `

`Does  Log(z1) + Log(z2) = Log(z1 z2)  ?`

ln(4)+3/2*I*Pi = ln(4)-1/2*I*Pi

false

 

 

Theorem 5.2 (A fact concerning principal logarithm)

 

The identity Log( z[1]*z[2] ) = Log( z[1] ) + Log( z[2] ) holds true if and only if -pi < Arg( z[1] ) + Arg( z[2] `)` <= pi .

 

 

Theorem 5.3 (Facts about the multivalued logarithm)

 

Let z[1] and z[2] be nonzero complex numbers. The multivalued function log obeys the familiar properties of logarithms:

 

i. log( z[1]*z[2] ) = log( z[1] ) + log( z[2] ) ,

 

ii. Log( z[1]/z[2] ) = Log( z[1] ) - Log( z[2] ) , and

 

iii. Log( 1/z ) = - Log( z ).

 

Page 172, Properties of Log(z) .

> z1 := x1 + I*y1:
z2 := x2 + I*y2:
w1 := log(z1):
w2 := log(z2):
v3 := v1 + v2:
`Log(z1) + Log(z2) ` = w3;
w3 := evalc(w1 + w2):
`Log(z1) + Log(z2) ` = w3; ` `;

`Log(z1) + Log(z2) ` = ln((-sqrt(3)+I)*(-1+I*sqrt(3...

`Log(z1) + Log(z2) ` = 1/2*ln(x1^2+y1^2)+1/2*ln(x2^...

` `

> z3 := z1*z2:
z4 := evalc(z1*z2):
w4 := log(z3):
`Log(z1 z2) ` = w4;
w4 := log(z4):
`Log(z1 z2) ` = w4;
w4 := evalc(w4):
`Log(z1 z2) ` = w4;
w4 := simplify(w4):
`Log(z1 z2) ` = w4; ` `;
`Does Log(z1 z2) = Log(z1) + Log(z1) ?`;
w4 = w3;

`Log(z1 z2) ` = ln((x1+I*y1)*(x2+I*y2))

`Log(z1 z2) ` = ln(x1*x2-y1*y2+I*(x1*y2+y1*x2))

`Log(z1 z2) ` = 1/2*ln((x1*x2-y1*y2)^2+(x1*y2+y1*x2...

`Log(z1 z2) ` = 1/2*ln(x1^2+y1^2)+1/2*ln(x2^2+y2^2)...

` `

`Does  Log(z1 z2) = Log(z1) + Log(z1) ?`

1/2*ln(x1^2+y1^2)+1/2*ln(x2^2+y2^2)+I*arctan(x1*y2+...
1/2*ln(x1^2+y1^2)+1/2*ln(x2^2+y2^2)+I*arctan(x1*y2+...

 

Therefore we will have Log(z[1]*z[2]) = Log(z[1])+Log(z[2]) provided that arctan(x[1]*y[2]+y[1]*x[2],x[1]*x[2]-y[1]*y[2]) = a... .
Those pesky arctan's must be taken seriously !

 

End of Section 5.2.