Mathematica Version 6 Compatibility Information
(continued)

This notebook continues Chapter by Chapter observations. Don't forget to look at the introduction in the first notebook! There is nothing at all to say about Chapters 13 and 18.

14 Laurent series, zeroes, singularities and residues

14.5 Singularities

\[MathematicaIcon] Pictures of singularities

The pictures here need the same modifications to ComplexPlot3D discussed previously in the update to Chapter 8. It is also more reliable to define the functions first and then plot them, due to some odd behaviour with pure functions.  Note how you get nicer plots with the mesh operation separated from the number of points used to plot.

Unprotect[Arg];Arg[0] = 0 ;

ComplexPlot3D[func_, xrange_, yrange_, options___] :=
Plot3D[Abs[func[x + I y]],xrange, yrange, options, ColorFunction ->  (Hue[N[(Pi+Arg[func[#1 + I #2]])/(2 Pi)]]&),
ColorFunctionScaling -> False]

myfunc[z_] := 1/z

ComplexPlot3D[myfunc, {x, -1, 1}, {y,-1, 1}, PlotRange -> {0, 40}, PlotPoints -> 40, Mesh -> 20]

You can repeat this with the following choices, as in the printed copy.

myfunc[z_] := 1/z^2

myfunc[z_] := Exp[-1/z^2]

15 Residue calculus: integration,
summation and the argument principle

There are no real problems here. If you do not supply good assumptions the integrator will take its time analyzing the conditions for the integral to work, as in earlier versions of Mathematica. With good assumptions things come out right as before. For example

Timing[Integrate[Sin[t]^2/(a + b*Cos[t]), {t, 0, 2*Pi}, Assumptions -> a>b>0]]

works as it should, but you might like to evaluate it in M6 without the assumptions, and note that M6 organizes the conditions differently.

16 Conformal mapping I: simple mappings and Möbius transforms

Apart from the introduction of some default colouring in the various contour plots, M6 does not produce materially different output. The animations need the use of Manipulate instead of Do. For a self-contained illustration we load up the early (unchanged) code and give an example of the modification to Section 16.2.

Needs["Graphics`ComplexMap`"];

PolarConformal[func_, radial_, polar_, options___] :=
Show[GraphicsArray[{PolarMap[#&, radial,polar,
options,  DisplayFunction -> Identity],
	PolarMap[func, radial,polar, options, DisplayFunction -> Identity]
		}], DisplayFunction -> $DisplayFunction];

The whinge about ComplexMap being obsolete will still appear, but the above code will work fine with the example below.

16.2 \[MathematicaIcon] A quick tour of mappings in Mathematica

Joukowski aerofoil mapping

Joukowski[x_, y_, R_, vbl_, θ_] := 
Exp[I θ] *((vbl + x + I y)+ (-x + Sqrt[R^2 - y^2])^2/(vbl + x + I y))

Manipulate[PolarConformal[Joukowski[x, 0, 2, #, 0]&,  {2,5},{0, 2 Pi}, Lines -> 10,PlotPoints -> 40,
PlotRange -> {{-6, 6}, {-6, 6}}], {x, 0.5, 0.0, -0.05},
SaveDefinitions -> True]

16.8 \[MathematicaIcon] More about ComplexInequalityPlot

The package used previously is now obsolete but works fine:

Needs["Graphics`InequalityGraphics`"];

ComplexInequalityPlot[ 1≤ Abs[z-I]≤  Sqrt[2] , 
{z, -5-5I,5+5I }]

Annonyingly the new RegionPlot command does not work with complex numbers as far as I can tell, so I see no incentive for changing the code.

RegionPlot[ 1≤ Abs[z-I]≤  Sqrt[2] , 
{z, -5-5I,5+5I }]

17 Fourier transforms

Everything here appears to work just fine. One minor detail follows:

17.2 An informal look at the delta-function

\[MathematicaIcon] The δ-function as the limit of a sequence of functions

One of the integrals seems to need a slight kick to simplify it:

1/Sqrt[2 Pi]Integrate[Exp[-ϵ*Abs[x]]*Exp[I*ω*x], 
  {x, -Infinity, Infinity}, Assumptions -> {ϵ>0, -ϵ < Im[ω] < ϵ}]

Simplify[%]