Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1992
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1992

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

Search the Archive

Re: Elliptic integral problems in mma

  • To: mathgroup at yoda.physics.unc.edu
  • Subject: Re: Elliptic integral problems in mma
  • From: keiper
  • Date: Wed, 28 Oct 92 10:43:48 CST

[This is a resending of this message.  The previous 
message was corrupted. --- smc, moderator]

	> Note that the parameter m > 1 (periodic solution).
	> The case m < 1 corresponds to a strictly increasing
	> y=y[t] (initial push z0 large enough), and in this
	> case there is only one curve

There are indeed two cases and the code defining JacobiAmplitude[ ]
(in StartUp`Elliptic`) is wrong.  It tries to deal with the more
complicated case of m < 1 (which it gets right), but messes up on
the much easier case of m > 1.  Below is the fix which should be put
in the file StartUp`Elliptic` near line 1008. (Delete the old code.)

I take full responsibility for this error and appologize for any
inconvenience it may have caused.

Jerry B. Keiper
keiper at wri.com



 (* ----------------------- JacobiAmplitude ------------------------ *)
 
JacobiAmplitude[u_, 0] := u;
JacobiAmplitude[u_, 1] := 2 ArcTan[Exp[u]] - Pi/2;
 
JacobiAmplitude[u_?NumberQ, m_?NumberQ] :=
        Module[{am = ArcSin[JacobiSN[u,m]], pi, s, k2, kp, km},
                k2 = 2 $EllipK[N[m, Precision[am]]];
                s = EllipticF[am, m];    
                pi = N[Pi, Accuracy[am]+2];
                km = Re[(u - s)/k2];
                kp = Re[(u + s)/k2];
                If[Abs[km - Round[km]] > Abs[kp - Round[kp]],
                        Round[kp] pi - am,
                   (* else *)
                        Round[km] pi + am]
                ] /; (Precision[{u, m}] < Infinity && Head[m] =!= Complex &&
                        Abs[m] < 1)
 
JacobiAmplitude[u_?NumberQ, m_?NumberQ] :=
        ArcSin[JacobiSN[u,m]] /; Precision[{u, m}] < Infinity
 
JacobiAmplitude/: Derivative[1,0][JacobiAmplitude] = JacobiDN
 
InverseFunction[JacobiAmplitude, 1, 2] = EllipticF
InverseFunction[EllipticF, 1, 2] = JacobiAmplitude
 




  • Prev by Date: Mma on RISC
  • Previous by thread: Re: Elliptic integral problems in mma
  • Next by thread: using Tektronix terminals other than the 4010