MathGroup Archive 2008

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

Search the Archive

Re: ParametricPlot precision problem

  • To: mathgroup at smc.vnet.net
  • Subject: [mg90888] Re: ParametricPlot precision problem
  • From: m.r at inbox.ru
  • Date: Mon, 28 Jul 2008 07:52:49 -0400 (EDT)
  • References: <g6h5dm$h15$1@smc.vnet.net>

On Jul 27, 1:43 am, "Cristina Ballantine" <cball... at holycross.edu>
wrote:
> Hi,
>
> With the code below, plot1 gives a line from -a to 0 (in the complex
> plane). plot2 should give the the symmetric of plot1 with respect to the
> unit circle, i.e., a line from -1/Conjugate[a] to infinity (same slope as
> line from -a to 0). I cannot get plot2 to give the correct line. Any help
> is very much appreciated.
>
> Cristina
>
> ---------------------------------
>
> r := 1/3
> alpha := Pi/3
> a := r*Exp[I*alpha]
> n := 3
>
> B[z_] := z^n*((Conjugate[a]/a)*(a^2 - z^2)/(1 - (Conjugate[a])^2*z^2))^=
n
>
> b := 1/(r*Sqrt[2])*Sqrt[3 - r^4 - Sqrt[(3 - r^4)^2 - 4*r^4]]*
>   Exp[I*alpha]
>
> s := -Abs[B[b]]
>
> z1[t_] := -(t/27) - ((1 + I Sqrt[3]) (27 - 27 (-1)^(1/3) - t^2))/(
>   27 2^(2/3) (19602 t - 19602 (-1)^(1/3) t + 2 t^3 + Sqrt[
>      4 (27 - 27 (-1)^(1/3) - t^2)^3 + (19602 t - 19602 (-1)^(1/3) t=
 +
>         2 t^3)^2])^(
>    1/3)) + ((1 - I Sqrt[3]) (19602 t - 19602 (-1)^(1/3) t + 2 t^3 +
>      Sqrt[4 (27 - 27 (-1)^(1/3) - t^2)^3 + (19602 t -
>         19602 (-1)^(1/3) t + 2 t^3)^2])^(1/3))/(54 2^(1/3))
>
> plot1:=ParametricPlot[{Re[z1[t]], Im[z1[t]]}, {t, s, 0},
>  PlotStyle -> {Orange, Thick}, PlotPoints -> 100, MaxRecursion -> 5,
>  PlotRange -> 1, WorkingPrecision -> 100]
>
> plot2 :=
>  ParametricPlot[{Re[1/Conjugate[z1[t]]], Im[1/Conjugate[z1[t]]]}, {t,
>    s, 0}, PlotStyle -> {Orange, Thick}, PlotPoints -> 2000,
>   MaxRecursion -> 15, PlotRange -> All, WorkingPrecision -> 100]

There isn't a straight line going through the origin, what you're
seeing in the first plot is several points very close to z1[s] and an
outlier at {0, 0}. This is similar to Sqrt[-1 - I t^2] for real t near
0: both limits are equal to -I but the value at t=0 is +I. So
basically z1[t] has a removable singularity at 0.

You can make a nice demonstration out of your example:

(*z1 as defined above*)
Module[{c2p, f, closest, gr, t},
 c2p = {Re@#, Im@#} &;
 f[p_, t_] := c2p@If[Norm[p] < 1, z1[t], z1[t]/Norm@z1[t]^2];
 closest[p_] := Quiet[f[p, t] /.
    Last@FindMinimum[Norm[f[p, t] - p],
      {t, .01, -1, 1}, PrecisionGoal -> 2]];
 gr = ParametricPlot[
   c2p /@ {z1[t], z1[t]/Norm@z1[t]^2} // Evaluate,
   {t, -1, 1},
   PlotStyle -> {Directive[Orange, Thick],
     Directive[Magenta, Thick]}];
 DynamicModule[{p = c2p at z1[.01]},
  LocatorPane[Dynamic[p, (p = closest[#]) &],
   Show[gr, Graphics[
     {Circle[], Dashed,
      Line@Dynamic@Sort[{{0, 0}, p, p/Norm@p^2}, Norm@# < Norm@#2 &],
      Locator[Dynamic[p/Norm@p^2, None], Appearance -> Small],
      Locator[Dynamic[p, None], Appearance -> Small]}],
    PlotRange -> All],
   Appearance -> None]
  ]]

Maxim Rytin
m.r at inbox.ru


  • Prev by Date: Re: Running programs from the command line in Mathematica
  • Next by Date: Re: Function Programming Problems
  • Previous by thread: ParametricPlot precision problem
  • Next by thread: Re: ParametricPlot precision problem