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 9  CONFORMAL MAPPING

S = T = w = W = x = y = z = Z = 
                      0; 
Clear[cos, f, F, g, graphs, Iden, S, set, sin, T, tan, w, W, w1, w2, 
        w3, wdot, wdots, wplane, z, z1, z2, z3, zdot, zdots, zplane, Z, 
        Zplane]; 
Needs["Graphics`ComplexMap`"]; 
Needs["Graphics`Colors`"];

Section 9.1	Basic Properties of Conformal Mappings

Section 9.2  Bilinear Transformations

The prerequisite for this section is Section 2.6 The Reciprocal Transformation w = 1/z.

Another important class of elementary mappings was studied by August Ferdinand Möbius (1790-1868).  These mappings are conveniently expressed as the quotient of two linear expressions and are commonly known as linear fractional or bilinear transformations.  They arise naturally in mapping problems involving the function  arctan(z).  In this section we will show how they are used to map a disk one-to-one and onto a half-plane.

	Let  a,  b,  c,  and  d  denote four complex constants with the restriction that a d ≠ b c.  Then the function

	w = S (z) = ((a z  +  b)/(c z  +  d))

is called a bilinear transformation or Möbius Transformation  or linear fractional transformation.  If the expression for  S(z)  is multiplied through by the quantity  c z  +  d,  then the resulting expression has the bilinear form  c w z  -  a z  +  d w  -  b  =  0.  We can collect terms involving  z  and write  z (c w  - a )  =  -d w  +  b.  For values of  w ≠ (a/c)  the inverse transformation is given by

	z = (S^(-1)) (w) = ((-d w + b)/(c w - a)).

We can extend  S  and  (S^(-1))  to mappings in the extended complex plane.  The value  S (∞)  should be chosen to equal the limit of S (∞)  as  z -> ∞.  Therefore we define

	\(S \((∞)\)\  = \ \(lim\+\(z\  -> \ ∞\)\ \ S \((z)\)\  = \ \(lim\+\(z\  -> \ ∞\)\ \ \(a\ \  + \ b\/z\)\/\(c\ \  + \ d\/z\)\  = \ \ a\/c\)\)\),  

and the inverse is  (S^(-1)) ((a/c))  =  ∞.  Similarly, the value  (S^(-1)) (∞)  is obtained by a limit

	\(\(S\^\(-1\)\) \((∞)\)\  == \ 
        lim\+\(w -> \ ∞\)\ \ \(S\^\(-1\)\) \((w)\)\  == \ lim\+\(w\  -> \ ∞\)\ \ \(\(-d\)\  + b\/w\)\/\(c\  - a\/w\)\  == \ \ \(-\ d\)\/c\),

and the inverse is  S (((- d)/c))  =  ∞.  With these extensions we conclude that the transformation  w = S (z)  is a one-to-one mapping of the extended complex z-plane onto the extended complex w-plane.

Example 9.3,  Page 364.  Show that  \(w = \(S \((z)\) = \(i\ \((1\  - \ z)\)\)\/\(1\  + \ z\)\)\)  maps the unit disk |z|<1 one-to-one and onto the upper half plane Im[w] > 0.

Solution 9.3.

Enter the function  S (z) =  ((i (1  -  z))/(1  +  z)).

Remove[z]; 
Clear[eqn, Iden, solset, S, w, z]; 
Iden[z_]  =  z; 
S[z_]  =  ((I (1 - z))/(1 + z)); 
Print["S(z) = ", S[z]];

To show  S(z)  is one-to-one, find the inverse function.

eqn = 
        w == S[z]; 
solset  =  Solve[eqn, z]; 
S1[w_] = 
        (Subscript[solset, [[1, 1, 2]]]); 
Print[eqn]; 
Print[solset]; 
Print[""]; 
\(\(Print[\*""z = \!\(S\^\(-1\)\)[w] = "", 
        S1[w]];\)\ \)

Check out the inverse function.

Print["w = S(z) = ", S[z]]; 
\(\(Print[\*""z = \!\(S\^\(-1\)\)[w] = "", S1[w]];\)\ \)
Print[""]; 
\(\(Print[\*""\!\(S\^\(-1\)\)[S[z]] = "", S1[S[z]], " = ", 
        Together[S1[S[z]]]];\)\ \)
Print[""]; 
\(\(Print[\*""S[\!\(S\^\(-1\)\)[w]] = "", S[S1[w]], " = ", 
        Together[S[S1[w]]]];\)\ \)

Consider the unit circle C: |z| = 1.  Since  \(z = \(\(S\^\(-1\)\) \((w)\) = \(i\  - \ w\)\/\(i\  + \ w\)\)\),  the image of these points will satisfy  \(\(\(\ \)\(\(\(|\)\(w + i\)\(|\)\) = \(\(|\)\(w + i\)\(|\)\)\)\)\).  
Square both sides of the above equation and obtain \(\(\(|\)\(u + i\ v + i\)\( | \^2\)\) = \(\(|\)\(\(-u\) - i\ v + i\)\( | \^2\)\)\)  which can be simplified.

eqn = 
        (u^2) + (((v + 1))^2) == 
          (u^2) + (((-v + 1))^2); 
Print[eqn]; 
Print[Simplify[eqn]];

The circle  C  divides the z-plane into two portions, and its image, v = 0, is the u-axis which divides the w-plane into two portions. The image of a point interior to  C  will determine which half plane is the image of the unit disk.  For example

Print["S[0] = ", 
        S[0]];

Therefore, the image of the unit disk |z|<1 is the upper half plane Im[w] > 0.  

To visualize that  S(z)  is onto we will consider a graph. The graph is not conclusive, but it appears to confirm our suspicion.

Clear[f, Iden, z]; 
Iden[z_]  =  z; 
S[
          z_]  = (( I (1 - z))/(1 + z)); 
PolarMap[
        Iden, {0.000005, 0.999995, 0.11111}, {0, 2  π, (π/12)}, 
        PlotRange -> {{-1.05, 1.05}, {-1.05, 
              1.05}}, 
Ticks -> {Range[-1, 1, 1], 
            Range[1, 1, 1]}, AxesLabel -> {"x", "y"}, 
        PlotStyle -> {Pink, Magenta}];  
Print["The disk |z| < 1."]; 
PolarMap[
        S   , {0.000005, 0.999995, 0.11111}, {0, 2  π, (π/12)}, 
        Ticks -> {Range[-3, 3, 1], Range[0, 3, 1]}, 
        AspectRatio -> (1/2), 
        PlotRange -> {{-3, 3}, {0, 
              3}}, 
AxesLabel -> {"u", "v"}, 
        PlotStyle -> {Pink, Magenta}];  
Print["The image half-plane Im[w] > 0,"]; 
Print["under the mapping  w = ", 
        S[z]];

We see that the transformation  \(w = \(S \((z)\) = \(i\ \((1\  - \ z)\)\)\/\(1\  + \ z\)\)\)  maps the unit disk |z|<1 one-to-one and onto the upper half plane Im[w] > 0.

Theorem 9.3 (The Implicit Formula), Page 365. There exists a unique bilinear transformation that maps three distinct points (Subscript[z, 1]),(Subscript[z, 2]),and  (Subscript[z, 3])  onto three distinct points (Subscript[w, 1]),(Subscript[w, 2]),and  (Subscript[w, 3]), respectively.  An implicit formula for the mapping is given by the equation    

	\(\(\((z\  - \ z\_1)\)\ \((z\_2\  - \ z\_3)\)\)\/\(\(\ \)\(\((z\  - \ z\_3)\) \((z\_2\  - \ z\_1)\)\)\) = \(\((w\  - \ w\_1)\)\ \((w\_2\  - \ w\_3)\)\)\/\(\((w\  - \ w\_3)\) \((w\_2\  - \ w\_1)\)\(\ \)\)\).

Proof of Theorem 9.3, see text Page 365.

Example 9.4,  Page 366.  Construct the bilinear transformation  w = S(z)  that maps the points  (Subscript[z, 1]) = -i,  (Subscript[z, 2]) = 1,  (Subscript[z, 3]) = i  onto the points  (Subscript[w, 1]) = -1,   (Subscript[w, 2]) = 0,   (Subscript[w, 3]) = 1,  respectively.

Solution 9.4.

Enter the three points and their images and solve for  w = S(z).

Remove[w, z]; 
Clear[formula, solset, S]; 
formula  =  (((z - (Subscript[z, 1])) ((Subscript[z, 2]) - (Subscript[z, 3])))/( (z - (Subscript[z, 3])) ((Subscript[z, 2]) - (Subscript[z, 1])))) == (((w - (Subscript[w, 1])) ((Subscript[w, 2]) - (Subscript[w, 3])))/((w - (Subscript[w, 3])) ((Subscript[w, 2]) - (Subscript[w, 1])) )); 
Print[formula]; 
(Subscript[z, 1])  =  -I;  
(Subscript[z, 2])  =  1;  
(Subscript[z, 3])  =  I;   
(Subscript[w, 1])  =  -1;   
(Subscript[w, 2])  =  0;  
(Subscript[w, 3])  =  1; 
Print[""]; 
Print["Substitute the values"]; 
\(\(Print[\*""   \!\(z\_1\) = "", 
        z\_1, \*"",      \!\(z\_2\) = "", 
        z\_2, \*"",      \!\(z\_3\) = "", z\_3];\)\ \)
\(\(Print[\*""   \!\(w\_1\) = "", 
        w\_1, \*"",      \!\(w\_2\) = "", 
        w\_2, \*"",      \!\(w\_3\) = "", 
        w\_3];\)\ \)
Print[""]; 
Print[formula]; 
solset  =  Solve[formula, w]; 
Print[solset]; 
S[z_]  =  
        (Subscript[solset, [[1, 1, 2]]]); 
Print[""]; 
Print["S(z) = ", S[z]];

Check our work and by looking at the images of  (Subscript[z, 1]),  (Subscript[z, 2]),  (Subscript[z, 3]).

\(
\(Print[\*""   \!\(z\_1\) = "", 
        z\_1, \*"",      \!\(z\_2\) = "", 
        z\_2, \*"",      \!\(z\_3\) = "", z\_3];\)\ \)
\(\(Print[\*""   \!\(w\_1\) = "", 
        w\_1, \*"",      \!\(w\_2\) = "", 
        w\_2, \*"",      \!\(w\_3\) = "", w\_3];\)\ \)
\(\(Print[\*""S[\!\(z\_1\)] = "", 
        S[z\_1], \*"",   S[\!\(z\_2\)] = "", 
        S[z\_2], \*"",   S[\!\(z\_3\)] = "", 
        S[z\_3]];\)\ \)

To visualize the mapping  w = S(z)  we will consider a graph.

Clear[f, Iden, wplane, z, zplane]; 
Iden[z_] = z; 
S[
          z_] = -((I (-1 + z))/(1 + 
                z)); 
set  =   {{0, -1}, {1, 0}, {0, 
            1}}; 
zdots = 
        Graphics[{{Red, PointSize[0.04], 
              Point[(Subscript[set, [[1]]])]}, {Red, PointSize[0.04], 
              Point[(Subscript[set, [[2]]])]}, {Red, PointSize[0.04], 
              Point[(Subscript[set, [[3]]])]}}, 
          DisplayFunction -> Identity]; 
set  =   {{-1, 0}, {0, 0}, {1, 
            0}}; 
wdots = 
        Graphics[{{Red, PointSize[0.04], 
              Point[(Subscript[set, [[1]]])]}, {Red, PointSize[0.04], 
              Point[(Subscript[set, [[2]]])]}, {Red, PointSize[0.04], 
              Point[(Subscript[set, [[3]]])]}}, 
          DisplayFunction -> Identity]; 
zplane = 
        CartesianMap[
          Iden, {0, 1, 0.125}, {-1, 1, 
            0.125}, 
PlotRange -> {{-0.1, 
                1.1}, {-1.1, 1.1}}, 
          AspectRatio -> 
            2, 
Ticks -> {Range[0, 1, 1], 
              Range[-1, 1, 1]}, AxesLabel -> {"x", "y"}, 
          PlotStyle -> {DarkGreen, Green}, 
          DisplayFunction -> Identity];  
wplane = 
        CartesianMap[
          S, {0, 1, 0.125}, {-1, 1, 
            0.125}, 
PlotRange -> {{-1.2, 
                1.2}, {-0.2, 1.0}}, 
          AspectRatio -> 
            (1/2), 
Ticks -> {Range[-1, 1, 1], 
              Range[-1, 1, 1]}, AxesLabel -> {"u", "v"}, 
          PlotStyle -> {DarkGreen, Green}, 
          DisplayFunction -> Identity];  
Show[zplane, zdots, 
        PlotRange -> {{-0.1, 1.1}, {-1.1, 1.1}}, 
        AspectRatio -> 
          2, 
Ticks -> {Range[0, 1, 1], 
            Range[-1, 1, 1]}, AxesLabel -> {"x", "y"}, 
        DisplayFunction -> $DisplayFunction];  
\(\(Print[\*""The points \!\(z\_1\) = "", 
        z\_1, \*"", \!\(z\_2\) = "", z\_2, \*"", \!\(z\_3\) = "", 
        z\_3, ","];\)\ \)
Print["in the z-plane."]; 
Show[wplane, 
        wdots, 
PlotRange -> {{-1.2, 
              1.2}, {-0.2, 1.0}}, 
        AspectRatio -> 
          (1/2), 
Ticks -> {Range[-1, 1, 1], 
            Range[-1, 1, 1]}, AxesLabel -> {"u", "v"}, 
        DisplayFunction -> $DisplayFunction];  
\(\(Print[\*""The images \!\(w\_1\) = "", 
        w\_1, \*"", \!\(w\_2\) = "", w\_2, \*"", \!\(w\_3\) = "", 
        w\_3];\)\ \)
Print["under the mapping w = S[z] = " , 
        S[z]]; 
Print["S[", (Subscript[z, 1]), "] = ", 
        S[(Subscript[z, 1])], 
",   S[", (Subscript[z, 2]), "] = ", 
        S[(Subscript[z, 2])], 
",   S[", (Subscript[z, 3]), "] = ", 
        S[(Subscript[z, 3])]];

Example 9.5,  Page 366.  Find the bilinear transformation  w = S(z)  that maps the points  (Subscript[z, 1]) = -2,   (Subscript[z, 2]) = -1 - i,   (Subscript[z, 3]) = 0  onto the points  (Subscript[w, 1]) = -1,   (Subscript[w, 2]) = 0,   (Subscript[w, 3]) = 1,  respectively.

Solution 9.5.

Enter the three points and their images and solve for  w = S(z).

Remove[w, z]; 
Clear[formula, solset, S]; 
formula  =  (((z - (Subscript[z, 1])) ((Subscript[z, 2]) - (Subscript[z, 3])))/( (z - (Subscript[z, 3])) ((Subscript[z, 2]) - (Subscript[z, 1])))) == (((w - (Subscript[w, 1])) ((Subscript[w, 2]) - (Subscript[w, 3])))/((w - (Subscript[w, 3])) ((Subscript[w, 2]) - (Subscript[w, 1])) )); 
Print[formula]; 
(Subscript[z, 1])  =  -2;   
(Subscript[z, 2])  =  -1 - I;  
(Subscript[z, 3])  =  0; 
(Subscript[w, 1])  =  -1;   
(Subscript[w, 2])  =  0;  
(Subscript[w, 3])  =  1; 
Print[""]; 
Print["Substitute the values"]; 
\(\(Print[\*""   \!\(z\_1\) = "", 
        z\_1, \*"",      \!\(z\_2\) = "", 
        z\_2, \*"",      \!\(z\_3\) = "", z\_3];\)\ \)
\(\(Print[\*""   \!\(w\_1\) = "", 
        w\_1, \*"",      \!\(w\_2\) = "", 
        w\_2, \*"",      \!\(w\_3\) = "", 
        w\_3];\)\ \)
Print[""]; 
Print[formula]; 
solset  =  Solve[formula, w]; 
Print[solset]; 
S[z_]  =  
        (Subscript[solset, [[1, 1, 2]]]); 
Print[""]; 
Print["S(z) = ", S[z]];

This is equivalent to the formula  \(S \((z)\) = \(\((1 - i)\) z\ \  + \ \ 2\)\/\(\((1 + i)\) z\ \  + \ \ 2\)\),  and can be verified by a computation.

\(
\(Print[
        S[z], " = ", \(\((1 - I)\) z\  + \ 2\)\/\(\((1 + I)\) z\  + \ 2\)];\)\ \)
Print[""]; 
\(\(Print[S[z], " = ", 
        Simplify[\(\((1 - I)\) z\  + \ 2\)\/\(\((1 + I)\) z\  + \ 2\)]];\)\ \)
\(\(Print["Are they equal ?  ", 
        S[z]\  == \ 
          Simplify[\(\((1 - I)\) z\  + \ 2\)\/\(\((1 + I)\) z\  + \ 2\)]];\)\ \)

Check our work and look at the images of  (Subscript[z, 1]),  (Subscript[z, 2]),  (Subscript[z, 3]).

\(
\(Print[\*""   \!\(z\_1\) = "", 
        z\_1, \*"",    \!\(z\_2\) = "", 
        z\_2, \*"",  \!\(z\_3\) = "", z\_3];\)\ \)
\(\(Print[\*""   \!\(w\_1\) = "", 
        w\_1, \*"",    \!\(w\_2\) = "", 
        w\_2, \*"",      \!\(w\_3\) = "", w\_3];\)\ \)
\(\(Print[\*""S[\!\(z\_1\)] = "", 
        S[z\_1], \*"", S[\!\(z\_2\)] = "", 
        S[z\_2], \*"",   S[\!\(z\_3\)] = "", 
        S[z\_3]];\)\ \)

To visualize the mapping  w = S(z)  we will consider a graph.

Clear[f, Iden, wplane, z, zplane]; 
Iden[z_] = z; 
S[
          z_] = -((I ((1 + I) + 
                    z))/((1 - I) + 
                z)); 
set  =   {{-2, 0}, {-1, -1}, {0, 
            0}}; 
zdots = 
        Graphics[{{Magenta, PointSize[0.04], 
              Point[(Subscript[set, [[1]]])]}, {Magenta, PointSize[0.04], 
              Point[(Subscript[set, [[2]]])]}, {Magenta, PointSize[0.04], 
              Point[(Subscript[set, [[3]]])]}}, 
          DisplayFunction -> Identity]; 
set  =   {{-1, 0}, {0, 0}, {1, 
            0}}; 
wdots = 
        Graphics[{{Magenta, PointSize[0.04], 
              Point[(Subscript[set, [[1]]])]}, {Magenta, PointSize[0.04], 
              Point[(Subscript[set, [[2]]])]}, {Magenta, PointSize[0.04], 
              Point[(Subscript[set, [[3]]])]}}, 
          DisplayFunction -> Identity]; 
zplane = 
        CartesianMap[
          Iden, {-2, 0, 0.125}, {-1, 1, 
            0.125}, 
PlotRange -> {{-2.1, 
                0.1}, {-1.1, 1.1}}, 
          AspectRatio -> 
            1, 
Ticks -> {Range[-2, 0, 1], 
              Range[-1, 1, 
                1]}, 
AxesLabel -> {"x", "y"}, 
          PlotStyle -> {Blue, Cyan}, 
          DisplayFunction -> Identity]; 
wplane = 
        CartesianMap[
          S, {-2, 0, 0.125}, {-1, 1, 
            0.125}, 
PlotRange -> {{-1.2, 
                1.2}, {-0.4, 2.0}}, 
          AspectRatio -> 
            1, 
Ticks -> {Range[-1, 1, 1], 
              Range[-1, 2, 
                1]}, 
AxesLabel -> {"u", "v"}, 
          PlotStyle -> {Blue, Cyan}, 
          DisplayFunction -> Identity]; 
Show[zplane, zdots, 
        PlotRange -> {{-2.1, 0.1}, {-1.1, 
              1.1}}, 
AspectRatio -> 1, 
        Ticks -> {Range[-2, 0, 1], 
            Range[-1, 1, 
              1]}, 
AxesLabel -> {"x", "y"}, 
        DisplayFunction -> $DisplayFunction]; 
\(\(Print[\*""The points \!\(z\_1\) = "", 
        z\_1, \*"", \!\(z\_2\) = "", z\_2, \*"", \!\(z\_3\) = "", 
        z\_3, ","];\)\ \)
Print["in the z-plane."]; 
Show[wplane, wdots, 
        PlotRange -> {{-1.2, 1.2}, {-0.4, 
              2.0}}, 
AspectRatio -> 1, 
        Ticks -> {Range[-1, 1, 1], 
            Range[-1, 2, 
              1]}, 
AxesLabel -> {"u", "v"}, 
        DisplayFunction -> $DisplayFunction]; 
\(\(Print[\*""The image points \!\(w\_1\) = "", 
        w\_1, \*"", \!\(w\_2\) = "", w\_2, \*"", \!\(w\_3\) = "", 
        w\_3, ","];\)\ \)
Print["under the mapping w = S[z] = " , 
        S[z]]; 
Print["S[", (Subscript[z, 1]), "] = ", 
        S[(Subscript[z, 1])], 
",   S[", (Subscript[z, 2]), "] = ", 
        S[(Subscript[z, 2])], 
",   S[", (Subscript[z, 3]), "] = ", 
        S[(Subscript[z, 3])]];

Example 9.6,  Page 367.  Show that  the mapping  \(w = \(S \((z)\) = \(\((1 - i)\) z\ \  + \ \ 2\)\/\(\((1 + i)\) z\ \  + \ \ 2\)\)\)  maps the disk  |z + 1|< 1  one-to-one and onto the upper half plane  Im[w] > 0.

Solution 9.6.

Enter the function  \(S \((z)\) = \(\((1 - i)\) z\ \  + \ \ 2\)\/\(\((1 + i)\) z\ \  + \ \ 2\)\).

Remove[S, w, W, z, 
        Z]; 
Clear[d, g, solset, w1, w2, w3, z1, z2, z3]; 
S[
          z_]  =  (((1 - I) z  +  2)/((1 + I) z  +  2)); 
Print["S(z) = ", S[z]];

To show  S(z)  is one-to-one, find the inverse function.

solset  =  
        Solve[w == S[z], z]; 
Print[solset]; 
Print[""]; 
\(\(Print[\*""z = (S^(-1))[w] = "", 
        solset\_\(\([[\)\(1, 1, 2\)\(]]\)\)];\)\ \)

To show  S(z)  is onto, use the method of oriented points on the boundary curve.

(Subscript[z, 1])  =  -2;  
(Subscript[z, 2])  =  -1 - I; 
(Subscript[z, 3])  =  0;  
(Subscript[w, 1])  =  -1;  
(Subscript[w, 2])  =  0;  
(Subscript[w, 3])  =  1; 
\(\(Print[\*""   \!\(z\_1\) = "", 
        z\_1, \*"",      \!\(z\_2\) = "", 
        z\_2, \*"",      \!\(z\_3\) = "", z\_3];\)\ \)
\(\(Print[\*""   \!\(w\_1\) = "", 
        w\_1, \*"",      \!\(w\_2\) = "", 
        w\_2, \*"",          \!\(w\_3\) = "", w\_3];\)\ \)
\(\(Print[\*""S[\!\(z\_1\)] = "", 
        S[z\_1], \*"",   S[\!\(z\_2\)] = "", 
        S[z\_2], \*"",       S[\!\(z\_3\)] = "", 
        S[z\_3]];\)\ \)

Therefore, the image of the disk  |z + 1|< 1  is the upper half plane  Im[w] > 0.  In order to graph the image of the disk  |z + 1|< 1  under  w = S(z)  we use the change of variable and find the image of  |z|< 1  under  w = g (z) = S (z - 1).

\(
\(g[z_]\  = \ S[z - 1];\)\ \)
Print["         S(z) = ", S[z]]; 
Print["g(z) = S(z-1) = ", g[z]];

To plot the graph we use the shifted disk and the functions d[z] = z-1  and  g[z] = S[z-1].

Clear[S, z]; 
d[z_]  =  z - 1; 
S[
          z_]  =  (((1 - I) z  +  2)/((1 + I) z  +  2)); 
g[z_]  =  S[z - 1]; 
set  =   {{-2, 0}, {-1, -1}, {0, 
            0}}; 
zdots = 
        Graphics[{{Blue, PointSize[0.04], 
              Point[(Subscript[set, [[1]]])]}, {Blue, PointSize[0.04], 
              Point[(Subscript[set, [[2]]])]}, {Blue, PointSize[0.04], 
              Point[(Subscript[set, [[3]]])]}}, 
          DisplayFunction -> Identity]; 
set  =   {{-1, 0}, {0, 0}, {1, 
            0}}; 
wdots = 
        Graphics[{{Blue, PointSize[0.04], 
              Point[(Subscript[set, [[1]]])]}, {Blue, PointSize[0.04], 
              Point[(Subscript[set, [[2]]])]}, {Blue, PointSize[0.04], 
              Point[(Subscript[set, [[3]]])]}}, 
          DisplayFunction -> Identity]; 
\(\(zplane = 
        PolarMap[
          d\ \ \ , {0.00005, 0.99995, 0.1111}, {0, 
            2  π, π\/12}, 
PlotRange -> {{\(-2.05\), 0.05}, {\(-1.05\), 
                1.05}}, 
Ticks -> {Range[\(-2\), 1, 
                1], Range[1, 1, 
                1]}, 
AxesLabel -> {"x", "y"}, 
          PlotStyle -> {Magenta, Pink}, 
          DisplayFunction -> Identity];\)\ \ \)
\(\(wplane = 
        PolarMap[
          g\ \ \ , {0.00005, 0.99995, 0.1111}, {0, 
            2  π, π\/12}, 
Ticks -> {Range[\(-3\), 3, 1], Range[0, 3, 1]}, 
AspectRatio -> 
            1\/2, PlotRange -> {{\(-3\), 3}, {0, 
                3}}, 
AxesLabel -> {"u", "v"}, 
          PlotStyle -> {Magenta, Pink}, 
          DisplayFunction -> Identity];\)\ \ \)
Show[zplane, zdots, 
        PlotRange -> {{-2.05, 0.05}, {-1.05, 
              1.05}}, 
Ticks -> {Range[-2, 1, 1], 
            Range[1, 1, 1]}, 
AspectRatio -> 1, 
        AxesLabel -> {"x", "y"}, 
        DisplayFunction -> $DisplayFunction];  
Print["The disk |z+1| < 1."]; 
Show[wplane, wdots, PlotRange -> {{-3, 3}, {0, 3}}, 
        AspectRatio -> 
          (1/2), 
Ticks -> {Range[-3, 3, 1], 
            Range[0, 3, 1]}, AxesLabel -> {"u", "v"}, 
        DisplayFunction -> $DisplayFunction];  
Print["The image half-plane Im[w] > 0,"]; 
Print["under the mapping  w = ", 
        S[z]]; 
Print["S[", (Subscript[z, 1]), "] = ", 
        S[(Subscript[z, 1])], 
",   S[", (Subscript[z, 2]), "] = ", 
        S[(Subscript[z, 2])], 
",   S[", (Subscript[z, 3]), "] = ", 
        S[(Subscript[z, 3])]];

We see that the transformation  \(w = \(S \((z)\) = \(\((1 - i)\) z\ \  + \ \ 2\)\/\(\((1 + i)\) z\ \  + \ \ 2\)\)\)  maps the disk  |z + 1|< 1  one-to-one and onto the upper half plane  Im[w] > 0.

Corollary 9.1 (The Implicit Formula with a point at Infinity), Page 367. In equation (9-18) the point at infinity can be introduced as one of the prescribed points in either the z plane or the w plane.

Proof of Corollary 9.1, see text Page 367.

Example 9.7,  Page 368.  Find the bilinear transformation  w = S(z)  that maps the crescent-shaped region that lies inside the disk |z - 2|< 2  and outside the circle |z - 1| =  1  onto a horizontal strip.

Solution 9.7.

Enter three points and their images and solve for  w = S(z).  For convenience we choose  (Subscript[z, 1]) = 4,  (Subscript[z, 2]) = 2 + 2  i,  (Subscript[z, 3]) = 0  which are mapped onto the points  (Subscript[w, 1]) = 0,  (Subscript[w, 2]) = 1,  (Subscript[w, 3]) = ∞,  respectively.  In this case we remove the terms involving  (Subscript[w, 3])  =  ∞,  in the implicit formula, because this implies that  \(\(w\_2\  - \ w\_3\)\/\(w\  - \ w\_3\) = \(\(w\_2\  - \ ∞\)\/\(w\  - \ ∞\) = 1\)\).

Remove[S, T, w, W, z, 
        Z]; 
Clear[formula, Iden, solset]; 
formula  =  (((z - (Subscript[z, 1])) ((Subscript[z, 2]) - (Subscript[z, 3])))/((z - (Subscript[z, 3])) ((Subscript[z, 2]) - (Subscript[z, 1]))))  ==  ((w - (Subscript[w, 1]))/((Subscript[w, 2]) - (Subscript[w, 1]))); 
Print[formula]; 
(Subscript[z, 1])  =  4;   
(Subscript[z, 2])  =  2 + 2  I;  
(Subscript[z, 3])  =  0;  
(Subscript[w, 1])  =  0;  
(Subscript[w, 2])  =  1;  
(Subscript[w, 3])  =  ∞;  
Print[""]; 
Print["Substitute the values"]; 
\(\(Print[\*""   \!\(z\_1\) = "", 
        z\_1, \*"",    \!\(z\_2\) = "", 
        z\_2, \*"",   \!\(z\_3\) = "", z\_3];\)\ \)
\(\(Print[\*""   \!\(w\_1\) = "", 
        w\_1, \*"",    \!\(w\_2\) = "", 
        w\_2, \*"",       \!\(w\_3\) = "", 
        w\_3];\)\ \)
Print[""]; 
Print[formula]; 
solset  =  Solve[formula, w]; 
Print[solset]; 
S[z_]  =  
        (Subscript[solset, [[1, 1, 2]]]); 
Print[""]; 
Print["S(z) = ", S[z]];

Check our work and look at the images of  (Subscript[z, 1]),  (Subscript[z, 2]),  (Subscript[z, 3]).

\(
\(Print[\*""   \!\(z\_1\) = "", 
        z\_1, \*"",      \!\(z\_2\) = "", 
        z\_2, \*"",    \!\(z\_3\) = "", z\_3];\)\ \)
\(\(Print[\*""   \!\(w\_1\) = "", 
        w\_1, \*"",      \!\(w\_2\) = "", 
        w\_2, \*"",        \!\(w\_3\) = "", w\_3];\)\ \)
\(\(Print[\*""S[\!\(z\_1\)] = "", 
        S[z\_1], \*"",   S[\!\(z\_2\)] = "", 
        S[z\_2], \*"",     S[\!\(z\_3\)] = "", 
        S[z\_3]];\)\ \)

And we need to look at the images of three more points;   (Subscript[z, 4]) = 1 - i,  (Subscript[z, 5]) = 2,  (Subscript[z, 6]) = 1 + i  and  (Subscript[w, 4]) = -2 + i,  (Subscript[w, 5]) = i,  
      (Subscript[w, 6]) = 2 + i.

(Subscript[z, 4])  =   1 - I;      (Subscript[z, 5])  =  
      2;     (Subscript[z, 6])  =  1 + I; 
(Subscript[w, 4])  =  -2 + I;    (Subscript[w, 5])  =  I;    (Subscript[w, 6])  =  2 + I; 
\(\(Print[\*""   \!\(z\_4\) = "", 
        z\_4, \*"",       \!\(z\_5\) = "", 
        z\_5, \*"",       \!\(z\_6\) = "", z\_6];\)\ \)
\(\(Print[\*""   \!\(w\_4\) = "", 
        w\_4, \*"",      \!\(w\_5\) = "", 
        w\_5, \*"",       \!\(w\_6\) = "", w\_6];\)\ \)
\(\(Print[\*""S[\!\(z\_4\)] = "", 
        S[z\_4], \*"",   S[\!\(z\_5\)] = "", 
        S[z\_5], \*"",    S[\!\(z\_6\)] = "", 
        S[z\_6]];\)\ \)

To illustrate the mapping, consider the inverse image of the horizontal strip.  We will need to use the inverse function.

Iden[w_]  =  w; 
solset  =  Solve[formula, z]; 
T[w_]  =  
        (Subscript[solset, [[1, 1, 2]]]); 
Print["w = S[z] = ", S[z]]; 
Print["z = T[w] = ", T[w]]; 
Print[" "]; 
Print["T[S[z]] = ", T[S[z]], " = ", 
        Simplify[T[S[z]]]]; 
Print[" "]; 
Print["S[T[w]] = ", S[T[w]], " = ", 
        Simplify[S[T[w]]]];

Now plot the graphs using T[w] then the identity map.

set  =   {{4, 0}, {2, 2}, {1, -1}, {2, 
            0}, {1, 1}}; 
zdots = 
        Graphics[{{Red, PointSize[0.04], 
              Point[(Subscript[set, [[1]]])]}, {Red, PointSize[0.04], 
              Point[(Subscript[set, [[2]]])]}, {Red, PointSize[0.04], 
              Point[(Subscript[set, [[3]]])]}, {Red, PointSize[0.04], 
              Point[(Subscript[set, [[4]]])]}, {Red, PointSize[0.04], 
              Point[(Subscript[set, [[5]]])]}}, 
          DisplayFunction -> Identity]; 
set  =   {{0, 0}, {1, 0}, {-2, 1}, {0, 1}, {2, 
            1}}; 
wdots = 
        Graphics[{{Red, PointSize[0.04], 
              Point[(Subscript[set, [[1]]])]}, {Red, PointSize[0.04], 
              Point[(Subscript[set, [[2]]])]}, {Red, PointSize[0.04], 
              Point[(Subscript[set, [[3]]])]}, {Red, PointSize[0.04], 
              Point[(Subscript[set, [[4]]])]}, {Red, PointSize[0.04], 
              Point[(Subscript[set, [[5]]])]}}, 
          DisplayFunction -> Identity]; 
zplane = 
        CartesianMap[
          T   , {-9, 9, 0.3}, {0.005, 0.995, 
            0.09}, 
PlotRange -> {{-0.05, 
                4.05}, {-2.05, 
                2.05}}, 
Ticks -> {Range[0, 4, 1], 
              Range[2, 2, 
                1]}, 
AxesLabel -> {"x", "y"}, 
          PlotStyle -> {DarkGreen, Green}, 
          DisplayFunction -> Identity];  
wplane = 
        CartesianMap[
          Iden, {-9, 9, 0.9}, {0.005, 0.995, 
            0.09}, 
PlotRange -> {{-9, 9}, {0, 
                1}}, 
          AspectRatio -> 
            (1/3), 
Ticks -> {Range[-9, 9, 3], 
              Range[0, 1, 1]}, AxesLabel -> {"u", "v"}, 
          PlotStyle -> {DarkGreen, Green}, 
          DisplayFunction -> Identity];  
Show[zplane, zdots, 
        PlotRange -> {{-0.05, 4.05}, {-2.05, 2.05}}, 
        AspectRatio -> 
          1, 
Ticks -> {Range[0, 4, 1], 
            Range[2, 2, 1]}, AxesLabel -> {"x", "y"}, 
        DisplayFunction -> $DisplayFunction];  
Print["The the crescent-shaped region that lies inside"]; 
\(\(Print["the disk |z-2| < 2 and outside the circle |z-1| = 1."];\)\ \)
Show[wplane, wdots, PlotRange -> {{-9, 9}, {0, 1}}, 
        AspectRatio -> 
          (1/3), 
Ticks -> {Range[-9, 9, 3], 
            Range[0, 1, 1]}, AxesLabel -> {"u", "v"}, 
        DisplayFunction -> $DisplayFunction];  
Print["The image is the horizontal strip 0 < v < 1,"]; 
Print["under the mapping  w = ", 
        S[z]]; 
Print["S[", (Subscript[z, 1]), "] = ", 
        S[(Subscript[z, 1])], 
",      S[", (Subscript[z, 2]), "] = ", 
        S[(Subscript[z, 2])], 
",   S[", (Subscript[z, 3]), "] = ", 
        S[(Subscript[z, 3])]]; 
Print["S[", (Subscript[z, 4]), "] = ", 
        S[(Subscript[z, 4])], 
",   S[", (Subscript[z, 5]), "] = ", 
        S[(Subscript[z, 5])], 
",   S[", (Subscript[z, 6]), "] = ", 
        S[(Subscript[z, 6])]];

We have constructed the transformation w = S[
            z] = -((i (-4  +  z))/z)  and see that the image of the crescent-shaped region that lies inside the disk |z - 2|< 2  and outside the circle |z - 1| =  1  is the horizontal strip  0 < v < 1.

Library Research Experience for Undergraduates

Project I. Write a report on bilinear transformations.

1. Avital, Shmuel and Shlomo Libeskind ''An Algebraic and Geometric Approach to Two Step Iteration of Bilinear Functions (in The Teaching of Math.),'' Am. Math. M., Vol. 91, No. 1. (Jan., 1984), pp. 53-56, Jstor.   

2. Beardon, Alan F., ''Curvature, Circles, and Conformal Maps (in Notes),'' Am. Math. M., Vol. 94, No. 1. (Jan., 1987), pp. 48-53, Jstor.   

3. Booker, T. Hoy, (1989), ''Bilinear Basics,'' Math. Mag., V. 62, No. 4, pp. 262-267.

4. Boyd, James N., (1985), ''A Property of Inversion in Polar Coordinates, The Math. Teach., V. 78, No. 1, pp. 60-61.

5. Brickman, Louis, ''The Symmetry Principle for Mobius Transformations (in Notes),'' Am. Math. M., Vol. 100, No. 8. (Oct., 1993), pp. 781-782., Jstor.   

6. Budden, F. J. (1969), ''Transformation Geometry in the Plane by Complex Number Methods,'' The Math. Gazette, V. 53, No. 383, pp. 19-31.

7. Cohen, Martin P., (1983), ''Inversion in a Circle: A Different Kind of Transformation,'' The Math. Teach., V. 86, No. 8, pp. 620-623.

8. Eljoseph, Nathan, ''On the Iteration of Linear Fractional Transformations,'' Am. Math. M., Vol. 75, No. 4. (Apr., 1968), pp. 362-366, Jstor.   

9. Amir-Moez, (1967), ''Conformal Linear Transformations,'' Math. Mag., Vol. 40, pp. 268-270.

Section 9.2  Exercises for Bilinear Transformations
See textbook page 370.

Section 9.3	Mappings Involving Elementary Functions

Section 9.4	Mappings by Trigonometric Functions

GO TO  THE  Table of Contents