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