Like the previous post, this post also seeks to approximately reproduce a hand-drawn plot. This time the goal is reproduce figure 7.3 from A&S page 298.
This plot is a visualizing of the function of a complex variable
w(z) = exp(−z²) erfc(− iz)
where erfc is the complementary error function.
A&S calls the graph above an “altitude chart.” This could be a little misleading since it’s the overlay of two plots. One plot is the absolute value of w(z), which could well be called altitude. But it also contains a plot of the phase. To put it another way, if we denote the values of the function in polar form r exp(iθ) the altitude chart is an overlay of a plot of r and a plot of θ.
We begin by defining
f[z_] := Exp[-z^2] Erfc[-I z]
The following code reproduces the lines of constant phase fairly well.
ContourPlot[Arg[f[x + I y]], {x, 0.1, 3.1}, {y, -2.5, 3}, Contours -> 20, ContourShading -> None, AspectRatio -> 1.6]
The lines of constant absolute value take a little more effort to reproduce. If we let Mathematica pick where to put the contour lines, they will not be distributed the same way they were in A&S.
ContourPlot[Abs[f[x + I y]], {x, 0, 3.1}, {y, -2.6, 3}, Contours -> 20, ContourShading -> None, AspectRatio -> 1.6]
We can duplicated the spacing in the original plot by providing Mathematica a list of contour values rather than number of contour values.
ContourPlot[Abs[f[x + I y]], {x, 0, 3.1}, {y, -2.6, 3}, Contours -> {0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 2, 3, 4, 5, 10, 100}, ContourShading -> None, AspectRatio -> 1.6]
(For reasons I don’t understand, Mathematica does not draw the contours corresponding to w = 10 and w = 100.)
When I overlay the phase and absolute value plots with the Show
command I get a plot approximately reproducing the original.