MathGroup Archive 2007

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

Search the Archive

Re: Redefine Arg to return a value from 0 to 2 pi


Works for me with Mathematica 6.01:
I didn't redefine Arg.

Kevin


myArg[z_] := Module[{z0 = z},
      If[Im[z0] < 0,
        ArcTan[Re[z0], Im[z0]] +
          2*Pi, ArcTan[Re[z0],
          Im[z0]]]]

p1 = ListPlot[Table[
          {t, myArg[2*E^(I*t)]},
          {t, 0, 4*Pi, 0.5}],
        PlotStyle -> Red];
p2 = ListPlot[Table[
          {t, Arg[2*E^(I*t)]},
          {t, 0, 4*Pi, 0.5}],
        PlotJoined -> True];
Show[p2, p1, PlotRange ->
      {-2*Pi, 2*Pi}]


chuck009 wrote:
> I'm trying to redefine Arg to return a value from 0 to 2 pi.  However when I do so and then try and plot Arg[z], Mathematica seems to still use the old definition.  Can anybody help me?  This is my code:
> 
> (* redefine Arg to return a value from 0 to 2 pi *)
> 
> Unprotect[Arg]
> Arg[z_] := Module[{z0 = z}, If[Im[z0] < 0, 
>          ArcTan[Re[z0], Im[z0]] + 2*Pi, ArcTan[Re[z0], 
>            Im[z0]]]]; 
> Protect[Arg]
> 
> (* check new definition -- this is correct *)
> 
> ListPlot[Table[{t, Arg[2*Exp[I*t]]}, {t, 0, 4*Pi, 0.1}]]
> 
> (* try and plot new definition of Arg -- Plot used the old definition (-pi to pi) *)
> 
> Plot[Arg[2*Exp[I*t]], {t, 0, 4*Pi}]   
> 
> (* resore old definition of Arg *)
> 
> Unprotect[Arg]
> Arg[z_] =. 
> Protect[Arg]
> 


  • Prev by Date: Automatic save before run in Wolfram Workbench
  • Next by Date: ParametricPlot3D from 5.2 to 6.0
  • Previous by thread: Redefine Arg to return a value from 0 to 2 pi
  • Next by thread: Re: Redefine Arg to return a value from 0 to 2 pi