Conformal Mapping

Author

Eric W. Weisstein
January 18, 2009

This notebook downloaded from http://mathworld.wolfram.com/notebooks/ComplexAnalysis/ConformalMapping.nb.

For more information, see Eric's MathWorld entry http://mathworld.wolfram.com/ConformalMapping.html.

©2009 Wolfram Research, Inc. except for portions noted otherwise

Initialization

<<Utilities`Typesetting`

Cartesian Maps

Power Laws

CartesianMap[#^(-2)&,{0,2,.1},{-2,2,.1},Axes->False,PlotLabel->TraditionalForm[w[z]==1/z^2],
PlotRange->1.5{{-1,1},{-1,1}},
ImageSize->200
]

CartesianMap[1/#&,{-2,2,.2},{-2,2,.2},Axes->False,PlotLabel->TraditionalForm[w[z]==1/z],
PlotRange->1.5{{-1,1},{-1,1}},
ImageSize->200
]

CartesianMap[Sqrt[#]&,{-2,2,.2},{-2,2,.2},Axes->False,PlotLabel->TraditionalForm[w[z]==Sqrt[z]],
PlotRange->1.5{{-1,1},{-1,1}},
ImageSize->200
]

CartesianMap[#&,{-2,2,.2},{-2,2,.2},Axes->False,PlotLabel->TraditionalForm[w[z]==z],
PlotRange->1.5{{-1,1},{-1,1}},
ImageSize->200
]

CartesianMap[#^(3/2)&,{0,3,.2},{-4,4,.2},Axes->False,PlotLabel->TraditionalForm[w[z]==z^(3/2)],PlotRange->4{{-1,1},{-1,1}},
ImageSize->200
]

CartesianMap[#^2&,{-3,3,.2},{0,3,.2},Axes->False,PlotLabel->TraditionalForm[w[z]==z^2],
PlotRange->1.5{{-1,1},{-1,1}},
ImageSize->200
]

Array

Conjugate[z+y]//TraditionalForm

1/Conjugate[z]//TraditionalForm

V5

Show[GraphicsArray[
Partition[CartesianMap[Sequence@@#,
DisplayFunction->Identity,
Axes->False,
PlotRange->{{-2,2},{-2,2}},
PlotLabel->TraditionalForm[f[z]==First[#][z]]]&/@
{
{1/#&,{-3,3,.2},{-3,3,.2}},
{#^2/2&,{0,3,.15},{-3,3,.2}},
{1/#^2/2&,{0,2,.1},{-2,2,.1}},
{Sqrt[2#]&,{-Pi,Pi},{-Pi,Pi}},
{Sqrt[2/#]&,{-2,2,.2},{-2,2,.2}},
{Exp[#]&,{0,Pi,.1},{-Pi,Pi}},
{Sin,{-Pi,Pi},{0,Pi}},
{Cos,{0,Pi},{-Pi,Pi}}
},4]
],ImageSize->500]

V6

g=GraphicsGrid[Partition[ParametricPlot[Through[{Re,Im}[#[[1]][x+I*y]]], {x,#[[2,1]],#[[2,2]]}, {y,#[[3,1]],#[[3,2]]}, PlotRange->{{-2,2},{-2,2}},PlotLabel->f[z]==Last[#][z],ImageSize->200,PlotStyle->None,MeshStyle->{Red,Blue},Evaluated->True]&/@{
{1/#&,{-3,3,.2},{-3,3,.2},InlineFraction[1,#]&},
{#^2/2&,{0,3,.15},{-3,3,.2},InlineFraction[#^2,2]&},
{1/#^2/2&,{0,2,.1},{-2,2,.1},InlineFraction[1,2#^2]&},
{Sqrt[2#]&,{-Pi,Pi},{-Pi,Pi},Sqrt[2#]&},
{Sqrt[2/#]&,{-2,2,.2},{-2,2,.2},Sqrt[InlineFraction[2,#]]&},
{Exp,{0,Pi,.1},{-Pi,Pi},Exp},
{Sin,{-Pi,Pi},{0,Pi},Sin},
{Cos,{0,Pi},{-Pi,Pi},Cos}
},4],ImageSize->600]

Workaround out of bounds values in lower left plot, causing bad EPS/PDF to be saved

g/.{x_?NumericQ,y_?NumericQ}:>Clip[{x,y},{-32000,32000}]

Special Cases

(1/(z^2))

CartesianMap[1/#^2&,{0,2,.1},{-2,2,.1},Axes->False,PlotLabel->TraditionalForm[f[z]==1/z^2],PlotRange->{{-2,2},{-2,2}}]

(1/z)

CartesianMap[1/#&,{0,2,.1},{-2,2,.1},Axes->False,PlotLabel->TraditionalForm[f[z]==1/z],PlotRange->{{-2,2},{-2,2}}]

(Sqrt[z])

CartesianMap[Sqrt[#]&,{-5,5},{-5,5},Axes->False,PlotLabel->TraditionalForm[HoldForm[f[z]==Sqrt[z]]],PlotRange->{{-2,2},{-2,2}}]

z

CartesianMap[#&,{-2,2,.1},{-2,2,.1},Axes->False,PlotLabel->TraditionalForm[f[z]==z],PlotRange->{{-2,2},{-2,2}}]

(z^(3/2))

CartesianMap[((#)^(3/2))&,{0,2,.1},{-2,2,.1},Axes->False,PlotLabel->TraditionalForm[HoldForm[f[z]==(z^(3/2))]],PlotRange->{{-2,2},{-2,2}}]

CartesianMap[((#)^2)&,{0,2,.1},{-2,2,.1},Axes->False,PlotLabel->TraditionalForm[HoldForm[f[z]==(z^2)]],PlotRange->{{-2,2},{-2,2}}]

Cayley Transform

CartesianMap[(I-#)/(I+#)&,{-5,5},{0,5,.25},PlotLabel->TraditionalForm[HoldForm[f[z]==(I-z)/(I+z)]],PlotRange->{{-1.1,1.1},{-1.1,1.1}},Ticks->None]

ζ(z)

CartesianMap[Zeta,{.01,.99},{0,20},PlotPoints->25,Axes->False]

Polar Maps

PolarMap[Identity,{0,1},{0, 2Pi},Axes->False]

PolarMap[1/Conjugate[#]&,{.01,2,0.2},{-2,2,0.2},Axes->False]

PolarMap[Cos,{0,Pi},{0,Pi},Axes->False]

PolarMap[Exp,{0,2},{-2,2},Axes->False]

PolarMap[Sin,{0,Pi},{0,Pi},Axes->False,PlotPoints->25]

PolarMap[Zeta,{.01,.5},{0,20},Axes->False]

Region Maps

ConformalRegionMap[f_,g_,{x_,x0_,x1_},{y_,y0_,y1_}]:={
ComplexInequalityPlot[f,{x,-2,2},{y,-2,2}],
InequalityPlot[1/Sqrt[x^2+y^2]<1,{x,-2,2},{y,-2,2}]
}

Show[GraphicsArray[{
InequalityPlot[Sqrt[x^2+y^2]<1,{x,-2,2},{y,-2,2},DisplayFunction->Identity],InequalityPlot[1/Sqrt[x^2+y^2]<1,{x,-2,2},{y,-2,2},DisplayFunction->Identity]
}]]

Show[GraphicsArray[{
ComplexInequalityPlot[Abs[z]<1,{z},DisplayFunction->Identity],ComplexInequalityPlot[1/Abs[z]<1,{z,-2(I+1),2(I+1)},DisplayFunction->Identity]
}]]

Show[GraphicsArray[{
ComplexInequalityPlot[Abs[z]<1,{z},DisplayFunction->Identity],ComplexInequalityPlot[Abs[1/z]<1,{z,-2(I+1),2(I+1)},DisplayFunction->Identity]
}]]

Show[GraphicsArray[{
ComplexInequalityPlot[Abs[z]<1,{z},DisplayFunction->Identity],ComplexInequalityPlot[Re[z]>0&&Im[z]>0,{z,-2(I+1),2(I+1)},DisplayFunction->Identity,PlotRange->{{-2,2},{-2,2}}]
}]]

Contour Plots

ComplexInequalityPlot[0<Abs[(I-z^2)/(I+z^2)]<1,{z,-2(I+1),2(I+1)}]//Timing

ComplexInequalityPlot[0<Abs[(I-z^2)/(I+z^2)]<1,{z,-2(I+1),2(I+1)}]//Timing

ComplexInequalityPlot[(9/10)^2<Abs[(I-z^2)/(I+z^2)]^2<1^2,{z,-2(I+1),2(I+1)},PlotRange->{{-2,2},{-2,2}}]//Timing

Show[GraphicsArray[{ComplexInequalityPlot[Abs[z]<1,{z},DisplayFunction->Identity],ComplexInequalityPlot[Abs[(I-z^2)/(I+z^2)]<1,{z,-2(I+1),2(I+1)},DisplayFunction->Identity,PlotRange->{{-2,2},{-2,2}}]}]]

w=.

dr=.1;
x=2;
(g1=Show[GraphicsArray[{
Graphics[Text[TraditionalForm[1/z],{0,0}]],
Graphics[{
Table[ComplexInequalityPlot[r<Abs[z]<r+dr,{z},
DisplayFunction->Identity,
Fills->Hue[r],
Curves->None
][[1]],
{r,0,1-dr,dr}],
Line/@(x{{{-1,0},{1,0}},{{0,-1},{0,1}}}),
Circle[{0,0},1]
},
AspectRatio->Automatic],
Graphics[{
Table[ComplexInequalityPlot[r^2<Abs[1/z]^2<(r+dr)^2,{z,-2(I+1),2(I+1)},DisplayFunction->Identity,Axes->True,Fills->Hue[r],
Curves->None
][[1]],{r,0,1-dr,dr}],
Line/@(x{{{-1,0},{1,0}},{{0,-1},{0,1}}}),
Circle[{0,0},1]
},AspectRatio->Automatic,PlotRange->x{{-1,1},{-1,1}}]
}],GraphicsSpacing->-.25])//Timing

dr=.1;
x=1.1;
aa=(I+1)/2;
(g2=Show[GraphicsArray[{
Graphics[Text[TraditionalForm[(z-a)/(1-(SuperStar[a])z)],{0,0}]],
Graphics[{
Table[ComplexInequalityPlot[r<Abs[z]<r+dr,{z},
DisplayFunction->Identity,
Fills->Hue[r],
Curves->None
][[1]],
{r,0,1-dr,dr}],
Line/@(x{{{-1,0},{1,0}},{{0,-1},{0,1}}}),
Circle[{0,0},1]
},
AspectRatio->Automatic],
Graphics[{
Table[ComplexInequalityPlot[r^2<Abs[(z+aa)/(1+Conjugate[aa]z)]^2<(r+dr)^2,{z,-1(I+1),1(I+1)},DisplayFunction->Identity,Axes->True,
Fills->Hue[r],
Curves->None
][[1]],{r,0,1-dr,dr}],
Line/@(x{{{-1,0},{1,0}},{{0,-1},{0,1}}}),
Circle[{0,0},1]
},AspectRatio->Automatic,PlotRange->x{{-1,1},{-1,1}}]
}],GraphicsSpacing->-.3])//Timing

dr=.1;
x=1.1;
(g3=Show[GraphicsArray[{
Graphics[Text[TraditionalForm[Sqrt[I(1-z)/(1+z)]],{0,0}]],
Graphics[{
Table[ComplexInequalityPlot[r<Abs[z]<r+dr,{z},
DisplayFunction->Identity,
Fills->Hue[r],
Curves->None
][[1]],
{r,0,1-dr,dr}],
Line/@(x{{{-1,0},{1,0}},{{0,-1},{0,1}}}),
Circle[{0,0},1]
},
AspectRatio->Automatic],
Graphics[{
Table[ComplexInequalityPlot[r^2<Abs[(I-z^2)/(I+z^2)]^2<(r+dr)^2&&Re[z]≥0,{z,-1(I+1),1(I+1)},DisplayFunction->Identity,Axes->True,
Fills->Hue[r],
Curves->None
][[1]],{r,0,1-dr,dr}],
Line/@(x{{{-1,0},{1,0}},{{0,-1},{0,1}}})
},AspectRatio->Automatic,PlotRange->x{{-1,1},{-1,1}}]
}],GraphicsSpacing->-.3])//Timing

dr=.1;
x=1.1;
(g4=Show[GraphicsArray[{
Graphics[Text[TraditionalForm[I(1-z)/(1+z)],{0,0}]],
Graphics[{
Table[ComplexInequalityPlot[r<Abs[z]<r+dr,{z},
DisplayFunction->Identity,
Fills->Hue[r],
Curves->None
][[1]],
{r,0,1-dr,dr}],
Line/@(x{{{-1,0},{1,0}},{{0,-1},{0,1}}}),
Circle[{0,0},1]
},
AspectRatio->Automatic],
Graphics[{
Table[ComplexInequalityPlot[r^2<Abs[(I-z)/(I+z)]^2<(r+dr)^2,{z,-1(I+1),1(I+1)},DisplayFunction->Identity,Axes->True,
Fills->Hue[r],
Curves->None
][[1]],{r,0,1-dr,dr}],
Line/@(x{{{-1,0},{1,0}},{{0,-1},{0,1}}})
},AspectRatio->Automatic,PlotRange->x{{-1,1},{-1,1}}]
}],GraphicsSpacing->-.3])//Timing

Show[GraphicsArray[{Join[g1//First,g3//First],Join[g2//First,g4//First]}]]