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

  1. "File BESSEL.MTH, copyright (c) 1990-2000 by Texas Instruments Incorporated"
  2.  
  3. "Functions for computing BESSEL_J, BESSEL_J_LIST, SPHERICAL_BESSEL_J_LIST,"
  4.  
  5. "and BESSEL_Y contributed by Wolfram Koepf and Jim FitzSimons"
  6.  
  7. BESSEL_J2(v):=v/(v SUB 1+2*SUM(v SUB (2*k_+1),k_,1,DIMENSION(v)/2-1))
  8.  
  9. BESSEL_J1(n,z):=ITERATE(APPEND([(2*(n-DIMENSION(v_))+4)/z*v_ SUB 1-v_ SUB 2],v~
  10. _),v_,[1,0],n)
  11.  
  12. BESSEL_J_LIST(n,z):=BESSEL_J2(BESSEL_J1(n,z))
  13.  
  14. BESSEL_J(n,z):=IF(z=0,IF(n=0,1,0),IF(MOD(n)=0,IF(n<0,(-1)^n,1)*(BESSEL_J_LIST(~
  15. ABS(n)+FLOOR(PrecisionDigits/2+4*ABS(z))+4,z)) SUB (ABS(n)+1),(z/2)^n/(SQRT(pi~
  16. )*GAMMA(n+1/2))*INT(COS(z*COS(t_))*SIN(t_)^(2*n),t_,0,pi)))
  17.  
  18. BESSEL_J_SERIES(n,z,m):=(z/2)^n*SUM((-z^2/4)^k_/(k_!*(n+k_)!),k_,0,m)
  19.  
  20. BESSEL_J_ASYMP(n,z):=SQRT(2/(pi*z))*COS(z-(n+1/2)*pi/2)
  21.  
  22. BESSELY0_AUX(z):=ITERATE(IF(b_ SUB 2=b_ SUB 3,b_,[b_ SUB 1+1,b_ SUB 3,b_ SUB 3~
  23. +(-z^2/4)^b_ SUB 1/b_ SUB 1!^2*SUM(1/m_,m_,1,b_ SUB 1)]),b_,[1,1,0])
  24.  
  25. BESSELY0(z):=2/pi*((LN(z/2)+euler_gamma)*BESSEL_J(0,z)-(BESSELY0_AUX(z)) SUB 2)
  26.  
  27. BESSELY1_AUX(z):=ITERATE(IF(b_ SUB 2=b_ SUB 3,b_,[b_ SUB 1+1,b_ SUB 3,b_ SUB 3~
  28. +(-z^2/4)^b_ SUB 1/(b_ SUB 1!^2*(b_ SUB 1+1))*(SUM(1/m_,m_,1,b_ SUB 1)+1/(2*(b~
  29. _ SUB 1+1)))]),b_,[0,1,0])
  30.  
  31. BESSELY1(z):=2/pi*(-1/z+(LN(z/2)+euler_gamma)*BESSEL_J(1,z)-z/2*(BESSELY1_AUX(~
  32. z)) SUB 2)
  33.  
  34. BESSEL_Y1(n,z):=ITERATES([w_ SUB 1+1,w_ SUB 3,2*w_ SUB 1/z*w_ SUB 3-w_ SUB 2],~
  35. w_,[1,BESSELY0(z),BESSELY1(z)],n-1)
  36.  
  37. BESSEL_Y(n,z):=IF(z=0,-inf,IF(n<0,(-1)^n,1)*IF(n=0,BESSELY0(z),IF(ABS(n)=1,BES~
  38. SELY1(z),(BESSEL_Y1(ABS(n),z)) SUB ABS(n) SUB 3)))
  39.  
  40. HARMONIC_NUMBER(n):=SUM(1/k,k,1,n)
  41.  
  42. BESSEL_Y_SERIES(n,z,m):=2/pi*((euler_gamma+LN(z/2))*BESSEL_J_SERIES(n,z,m)-(SU~
  43. M((n-m_-1)!/m_!*(z/2)^(2*m_-n),m_,0,n-1)+SUM(COS(pi*m_)*(z/2)^(n+2*m_)/(m_!*(n~
  44. +m_)!)*(HARMONIC_NUMBER(m_)+HARMONIC_NUMBER(n+m_)),m_,0,m))/2)
  45.  
  46. BESSEL_Y_ASYMP(n,z):=SQRT(2/(pi*z))*SIN(z-(n+1/2)*pi/2)
  47.  
  48. BESSEL_I(n,z):=INT(#e^(z*COS(t))*COS(n*t),t,0,pi)/pi
  49.  
  50. BESSEL_I_SERIES(n,z,m):=(z/2)^n*SUM((z^2/4)^k/(k!*(n+k)!),k,0,m)
  51.  
  52. BESSEL_I_ASYMP(n,z):=#e^z/SQRT(2*pi*z)*(1-(4*n^2-1)/(8*z))
  53.  
  54. BESSEL_K(n,z):=INT(#e^(-z*COSH(t))*COSH(n*t),t,0,inf)
  55.  
  56. BESSEL_K_ASYMP(n,z):=#e^(-z)*SQRT(pi/(2*z))*(1+(4*n^2-1)/(8*z))
  57.  
  58. SPHERICAL_BESSEL_Y(n,z):=
  59.  
  60. SPHERICAL_BESSEL_J(n,z):=IF(n<0,(-1)^n*SPHERICAL_BESSEL_Y(-n-1,z),z^n*LIM(ITER~
  61. ATE(-1/z_*DIF(u_,z_),u_,SIN(z_)/z_,n),z_,z,0))
  62.  
  63. SPHERICAL_BESSEL_Y(n,z):=IF(n<0,-(-1)^n*SPHERICAL_BESSEL_J(-n-1,z),-z^n*LIM(IT~
  64. ERATE(-1/z_*DIF(u_,z_),u_,COS(z_)/z_,n),z_,z,0))
  65.  
  66. SPHERICAL_BESSEL_J2(v):=v/SQRT(SUM((2*k_-1)*v SUB k_^2,k_,1,DIMENSION(v)))
  67.  
  68. SPHERICAL_BESSEL_J1(n,z):=ITERATE(APPEND([(2*(n-DIMENSION(v_))+5)/z*v_ SUB 1-v~
  69. _ SUB 2],v_),v_,[1,0],n)
  70.  
  71. SPHERICAL_BESSEL_J_LIST(n,z):=SPHERICAL_BESSEL_J2(SPHERICAL_BESSEL_J1(n,z))
  72.  
  73. AI_AUX(z,m):=SUM(3^k*GAMMA(1/3+k)*z^(3*k)/(3*k)!,k,0,m)
  74.  
  75. BI_AUX(z,m):=SUM(3^k*GAMMA(2/3+k)*z^(3*k+1)/(3*k+1)!,k,0,m)
  76.  
  77. AI_SERIES(z,m):=IF(z=0,3^(5/6)*(1/3)!/(2*pi),(3^(-1/6)*AI_AUX(z,m)-3^(1/6)*BI_~
  78. AUX(z,m))/(2*pi))
  79.  
  80. BI_SERIES(z,m):=IF(z=0,3^(4/3)*(1/3)!/(2*pi),(3^(1/3)*AI_AUX(z,m)+3^(2/3)*BI_A~
  81. UX(z,m))/(2*pi))
  82.