ComplexMapExt

by Carlo Teubner, carlo.teubner@keb.ox.ac.uk

Say you want to map the first quadrant of the (interior of the) unit circle conformally into the whole unit circle. You have figured out that the transformation to apply is \(TraditionalForm\`i \(\(\ \)\((z\^4 + 2\ i\ z\^2 + 1)\)\)\/\(z\^4 - 2\ i\ z\^2 + 1\)\). How do you try this out? There is a standard package Graphics`ComplexMap` which lets you map the whole plane under a given transformation, letting you see the effect on the (Cartesian or polar) grid lines. But ideally you'd want to see the effect only on a region you specifiy. That is where ComplexMapExt` comes in.

<< ComplexMapExt`

CartesianMap[
      Abs[z] < 1 ∧ Im[z] > 0 ∧ 
        Re[z] > 0, I (((z^4) + 2  I (z^2) + 1)/((z^4) - 2  I (z^2) + 1)), 
      z, {- .1, 1.1}, {- .1, 1.1}]

Looks pretty good. We've used the syntax CartesianMap[regionInequality[z], function[z], z, {xmin, xmax}, {ymin, ymax}] here.

Some improvements: Let's view the original region as well, just for comparison; and let's introduce some colour. We'll also increase the number of grid lines.
Warning: evaluating the next cell might take some time (15 seconds on a Pentium M 1.4 GHz). This is mostly due to the colour, which slows things down considerably.

CartesianMap[
      Abs[z] < 1 ∧ Im[z] > 0 ∧ 
        Re[z] > 0, {z, I (((z^4) + 2  I (z^2) + 1)/((z^4) - 2  I (z^2) + 1))}, z, {- .1, 1.1}, {- .1, 1.1}, 
      ColorFunction -> (Hue[#1, 1, #2] &), 
      Lines -> 80]

Surely that was worth the wait? :)
Notice how the colours help you see which parts of the original region are mapped where.

Just for reference, let's also have a look at an example of PolarMap, which works essentially the same.

PolarMap[True, {z, Zeta[z]}, z, {0, 1}]

The syntax is PolarMap[regionInequality[z], function[z], z, {rmin, rmax}, {θmin, θmax}]; here we've left out {θmin, θmax}, which by default is assumed to be {0, 2π}.