home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 June / Chip_2002-06_cd1.bin / zkuste / derive / download / Setup.exe / %MAINDIR% / Math / Elliptic.mth < prev    next >
Encoding:
Text File  |  2002-05-15  |  2.0 KB  |  64 lines

  1. "File ELLIPTIC.MTH, copyright (c) 1990-2000 by Texas Instruments Incorporated"
  2.  
  3. ELLIPTIC_F(phi,m):=INT(1/SQRT(1-m*SIN(t_)^2),t_,0,phi)
  4.  
  5. ELLIPTIC_E(phi,m):=INT(SQRT(1-m*SIN(t_)^2),t_,0,phi)
  6.  
  7. ELLIPTIC_PI(phi,m,n):=INT(1/((1-n*SIN(t_)^2)*SQRT(1-m*SIN(t_)^2)),t_,0,phi)
  8.  
  9. "The remaining functions contributed by Jim FitzSimons (cherry@neta.com)"
  10.  
  11. JACOBI_AGM(m,n):=ITERATES([(v_ SUB 1+v_ SUB 2)/2,SQRT(v_ SUB 1*v_ SUB 2),(v_ S~
  12. UB 1-v_ SUB 2)/2],v_,[1,SQRT(1-m),SQRT(m)],n)
  13.  
  14. JACOBI_AUX(u,a,n):=ITERATE([ASIN(a SUB (v_ SUB 2) SUB 3*SIN(v_ SUB 1)/a SUB (v~
  15. _ SUB 2) SUB 1)/2+v_ SUB 1/2,v_ SUB 2-1],v_,[2^n*a SUB n SUB 1*u,n+1],n)
  16.  
  17. "JACOBI_AM(u,m,n) is the Jacobi elliptic amplitude function."
  18.  
  19. "It is the basic function needed to generate all the Jacobi elliptic functions~
  20. ."
  21.  
  22. JACOBI_AM(u,m,n):=(JACOBI_AUX(u,JACOBI_AGM(m,n),n)) SUB 1
  23.  
  24. "KI(m,n) is the complete elliptic integral of the first kind."
  25.  
  26. KI(m,n):=pi/(2*(JACOBI_AGM(m,n)) SUB (n+1) SUB 1)
  27.  
  28. "EIF(phi,m,n) is the elliptic integral of the first kind."
  29.  
  30. "This algorithm came from Numerical Recipes in C 6.11 page 261."
  31.  
  32. EIF_AUX1(v,lambda):=[(v SUB 1+lambda)/4,(v SUB 2+lambda)/4,(v SUB 3+lambda)/4]
  33.  
  34. EIF_AUX2(v):=SQRT(v SUB 2*v SUB 3)+SQRT(v SUB 1*v SUB 3)+SQRT(v SUB 1*v SUB 2)
  35.  
  36. EIF_AUX3(x,y,z,n):=ITERATE(EIF_AUX1(v_,EIF_AUX2(v_)),v_,[x,y,z],n)
  37.  
  38. EIF_AUX4(ave,v):=[1,1,1]-v/ave
  39.  
  40. EIF_AUX5(v):=[v SUB 1*v SUB 2-v SUB 3*v SUB 3,v SUB 1*v SUB 2*v SUB 3]
  41.  
  42. EIF_AUX6(v,ave):=(1+(v SUB 1/24-1/10-3*v SUB 2/44)*v SUB 1+v SUB 2/14)/SQRT(ave)
  43.  
  44. EIF_AUX7(v,ave):=EIF_AUX6(EIF_AUX5(EIF_AUX4(ave,v)),ave)
  45.  
  46. EIF_AUX8(v):=EIF_AUX7(v,AVERAGE(v))
  47.  
  48. EIF_AUX9(x,y,z,n):=EIF_AUX8(EIF_AUX3(x,y,z,n))
  49.  
  50. EIF(phi,m,n):=SIN(phi)*EIF_AUX9(COS(phi)^2,1-m*SIN(phi)^2,1,n)
  51.  
  52. "This is a test of EIF(u,m,n)."
  53.  
  54. VECTOR(VECTOR(EIF(JACOBI_AM(u,m,6),m,7)-u,u,0.2,1,0.2),m,0.2,0.8,0.2)
  55.  
  56. "This is a test of JACOBI_AM(u,m,n)."
  57.  
  58. VECTOR(VECTOR(APPROX(ELLIPTIC_F(JACOBI_AM(u,m,6),m),6)-u,u,0.2,1,0.2),m,0.2,0.~
  59. 8,0.2)
  60.  
  61. "This is a test of KI(m,n)."
  62.  
  63. VECTOR(EIF(pi/2,m,15)-KI(m,6),m,0.2,0.8,0.2)
  64.