RE: How to plot field lines of conformal mapping
- To: mathgroup at smc.vnet.net
- Subject: [mg26165] RE: [mg26083] How to plot field lines of conformal mapping
- From: "David Park" <djmp at earthlink.net>
- Date: Thu, 30 Nov 2000 01:04:08 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Jos, Here is one method for doing it. Since I am not a very complex fellow, I converted your f function to a real mapping. f = z + I*Sinh[z] % /. z -> u + I*v F[u_, v_] = ComplexExpand[ {Re[%], Im[%]}] z + I*Sinh[z] u + I*v + I*Sinh[u + I*v] {u - Cosh[u]*Sin[v], v + Cos[v]*Sinh[u]} Then you can plot it this way. You don't really need 700 plot points. I had to use the Join statement to add the two end points to the v cases. ParametricPlot[Evaluate[(F[u, #1] & ) /@ Join[Range[-1.5, 1.5, 0.25], {-Pi/2, Pi/2}]], {u, -3, 3}, Frame -> True, Axes -> None, AspectRatio -> Automatic, ImageSize -> 500, PlotRange -> {{-10, 10}, {-10, 10}}]; Here is another approach which labels each of the curves. I left out the two end point cases. labeledcurve[v_] := {First[ParametricPlot[Evaluate[F[u, v]], {u, -3, 3}, DisplayFunction -> Identity]], Text[NumberForm[N[v], 3], F[2.5, v], Background -> GrayLevel[1], TextStyle -> FontSize -> 10]} Show[Graphics[labeledcurve /@ Range[-1.5, 1.5, 0.25]], Frame -> True, Axes -> None, AspectRatio -> Automatic, ImageSize -> 500, PlotRange -> {{-10, 10}, {-10, 10}}]; David Park djmp at earthlink.net http://home.earthlink.net/~djmp/ > -----Original Message----- > From: Jos R Bergervoet [mailto:Jos.Bergervoet at philips.com] To: mathgroup at smc.vnet.net > > I would like to plot a family of field lines obtained from a conformal > mapping, as in the following code snippet. Is there a shorter way? > > f = z + I Sinh[z] > > ParametricPlot[{ > {Re[f], Im[f]} /. z->u-Pi/2I, > {Re[f], Im[f]} /. z->u-1.5I, > {Re[f], Im[f]} /. z->u-1.25I, > {Re[f], Im[f]} /. z->u-1.0I, > {Re[f], Im[f]} /. z->u-0.75I, > {Re[f], Im[f]} /. z->u-0.5I, > {Re[f], Im[f]} /. z->u-0.25I, > {Re[f], Im[f]} /. z->u+0I, > {Re[f], Im[f]} /. z->u+0.25I, > {Re[f], Im[f]} /. z->u+0.5I, > {Re[f], Im[f]} /. z->u+0.75I, > {Re[f], Im[f]} /. z->u+1.0I, > {Re[f], Im[f]} /. z->u+1.25I, > {Re[f], Im[f]} /. z->u+1.5I, > {Re[f], Im[f]} /. z->u+Pi/2I > }, > {u,-3,3}, PlotPoints->700] > > > I tried (without success) to do it after creating a table in advance: > > n = 1 > t = Table[{Re[f], Im[f]} /. z->u+i/n Pi/2I , {i, -n,n}] > ParametricPlot[t, {u,-3,3}, PlotPoints->700] > > This does not work. Does anyone know an elegant solution? > > NB: I do not want the full CartesianMap[F , {-3,3}, {-Pi/2,Pi/2}] > but only one of the two families of lines. > > Thanks in advance, > Jos > > -- > Dr. Jozef R. Bergervoet Electromagnetism and EMC > Philips Research Laboratories, Eindhoven, The Netherlands > Building WS01 FAX: +31-40-2742224 > E-mail: Jos.Bergervoet at philips.com Phone: +31-40-2742403 > >