MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Deriving parametric plot of a branch cut

  • To: mathgroup at smc.vnet.net
  • Subject: [mg78889] Re: Deriving parametric plot of a branch cut
  • From: chuck009 <dmilioto at comcast.com>
  • Date: Thu, 12 Jul 2007 05:14:40 -0400 (EDT)

I've made some progress:  I can construct a table of points using FindRoot to determine when the transition from pi to -pi occurs along a vertical line through the first branch cut:

function= Log[1 + 1/(E^z*Sqrt[z])]

firstbranchpoints = 
  Table[{x, y /. FindRoot[Im[wExample /. z -> x + I*y] == -Pi, 
      {y, 1.5}]}, {x, -5, -0.5, 0.1}]

firsthighbranch = ListPlot[firstbranchpoints, 
   PlotRange -> {{-5, 5}, {-5, 5}}, PlotJoined -> True, 
   PlotStyle -> {Red, Thickness[0.01]}]

It's close because I can now superimpose this plot over the contour plot of the branch cuts:

branching = Show[{ContourPlot[Evaluate[Im[wExample] /. 
       z -> x + I*y], {x, -size, size}, {y, -size, size}, 
     Contours -> 25, ContourShading -> False, 
     ContourStyle -> {{Thickness[0.00001]}}, PlotLabel -> Im, 
     PlotPoints -> 250], firsthighbranch}, AspectRatio -> 1, 
   PlotRange -> {{-10, 10}, {-10, 10}}]

It's right over it!

I can go further and use Fit to construct a parametric representation of the data:

f[x_] = Fit[firstbranchpoints, {1, x, x^2, x^3}, x]
p2 = Plot[f[x], {x, -5, 0}]

And now check the fit against the actual table of data:

Show[{firsthighbranch, p2}]

Still pretty close.  

I'd like to be able also to calculate the branch point there.  It's:

1+Exp[-z]/Sqrt[z]=0

Which is not easy to determine.  But I can use the nice feature of "get graphic's coordinate" over the contour plot to get it close and then feed it into FindRoot (that mess in FindRoot is the expansion of the above equation in terms of the real and imaginary components in terms of r and t . . . I can barely follow my own code).  Anyway it's close.

xval = -0.45; 
yval = 2.51; 
rval = Sqrt[xval^2 + yval^2]
tval = ArcTan[xval, yval]
Clear[r, t]
FindRoot[{Exp[(-r)*Cos[t]]*Cos[r*Sin[t]] == (-r^(1/2))*Cos[t/2], 
   (-Exp[(-r)*Cos[t]])*Sin[r*Sin[t]] == (-r^(1/2))*Sin[t/2]}, 
  {r, rval}, {t, tval}]
1 + Exp[-z]/Sqrt[z] /. z :> r*Exp[I*t] /. 
  FindRoot[{Exp[(-r)*Cos[t]]*Cos[r*Sin[t]] == (-r^(1/2))*Cos[t/2], 
    (-Exp[(-r)*Cos[t]])*Sin[r*Sin[t]] == (-r^(1/2))*Sin[t/2]}, 
   {r, rval}, {t, tval}]

2.550019607767752

1.748194552671627

{r -> 2.303225119562336, t -> 1.7529193086245782}

0. + 5.551115123125783*^-17*I


  • Prev by Date: Re: BesselK problems at large argument?
  • Next by Date: Re: Debug of FindRoot
  • Previous by thread: Re: Deriving parametric plot of a branch cut
  • Next by thread: textdata inside textdata problem