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

  1. "File ODE2.MTH, copyright (c) 1990-2000 by Texas Instruments Incorporated"
  2.  
  3. LIN_SOLVE(a,b):=ELEMENT(ROW_REDUCE(a,b)`,1+DIMENSION(a))
  4.  
  5. DISC_AUX(p,q,x):=p^2/4-q+DIF(p,x)/2
  6.  
  7. LIN2_HOM_AUX(d,x):=IF(d<0,[COS(SQRT(-d)*x),SIN(SQRT(-d)*x)],~
  8.               [#e^(SQRT(d)*x),#e^(-SQRT(d)*x)],~
  9.               [#e^(SQRT(d)*x),#e^(-SQRT(d)*x)])
  10.  
  11. LIN2_HOM(d,x):=IF(d=0,[1,x],LIN2_HOM_AUX(d,x),LIN2_HOM_AUX(d,x))
  12.  
  13. LIN2_PARTIC(h,r,x):=h . INT([-ELEMENT(h,2),ELEMENT(h,1)]*r/DET([h,DIF(h,x)]),x)
  14.  
  15. LIN2_AUX2(h,r,x,c):=c . h+LIN2_PARTIC(h,r,x)
  16.  
  17. LIN2_AUX(d,p,r,x,c):=~
  18.  IF(DIF(d,x)=0,LIN2_AUX2(LIN2_HOM(d,x)*#e^(INT(p,x)/-2),r,x,c),~
  19.            "inapplicable","inapplicable")
  20.  
  21. DSOLVE2(p,q,r,x,c1,c2):=LIN2_AUX(DISC_AUX(p,q,x),p,r,x,[c1,c2])
  22.  
  23.  
  24. LIN2_BV_AUX3(h,p,x,x0,y0,x2,y2):=~
  25.  p+h . LIN_SOLVE([LIM(h,x,x0),LIM(h,x,x2)],[y0-LIM(p,x,x0),y2-LIM(p,x,x2)])
  26.  
  27. LIN2_BV_AUX2(h,r,x,x0,y0,x2,y2):=~
  28.  LIN2_BV_AUX3(h,LIN2_PARTIC(h,r,x),x,x0,y0,x2,y2)
  29.  
  30. LIN2_BV_AUX(d,p,r,x,x0,y0,x2,y2):=~
  31.  IF(DIF(d,x)=0,LIN2_BV_AUX2(LIN2_HOM(d,x)*#e^(INT(p,x)/-2),r,x,x0,y0,x2,y2),~
  32.     "inapplicable","inapplicable")
  33.  
  34. DSOLVE2_BV(p,q,r,x,x0,y0,x2,y2):=LIN2_BV_AUX(DISC_AUX(p,q,x),p,r,x,x0,y0,x2,y2)
  35.  
  36.  
  37. LIN2_IV_AUX3(h,p,x,x0,y0,v0):=~
  38.  p+h . LIN_SOLVE(LIM([h,DIF(h,x)],x,x0),LIM([y0-p,v0-DIF(p,x)],x,x0))
  39.  
  40. LIN2_IV_AUX2(h,r,x,x0,y0,v0):=~
  41.  LIN2_IV_AUX3(h,LIN2_PARTIC(h,r,x),x,x0,y0,v0)
  42.  
  43. LIN2_IV_AUX(d,p,r,x,x0,y0,v0):=~
  44.  IF(DIF(d,x)=0,LIN2_IV_AUX2(LIN2_HOM(d,x)*#e^(INT(p,x)/-2),r,x,x0,y0,v0),~
  45.     "inapplicable","inapplicable")
  46.  
  47. DSOLVE2_IV(p,q,r,x,x0,y0,v0):=LIN2_IV_AUX(DISC_AUX(p,q,x),p,r,x,x0,y0,v0)
  48.  
  49. AUTONOMOUS_CONSERVATIVE(q,x,y,x0,y0,v0):=~
  50. x=x0+IF(v0=0,1,SIGN(v0))*INT((2*INT(q,y,y0,y)+v0^2)^(-1/2),y,y0,y)
  51.  
  52. LIOUVILLE(p,q,x,y,c1,c2):=INT(#e^INT(q,y),y)-c1+c2*INT(#e^INT(-p,x),x)=0
  53.  
  54. AUTONOMOUS(r,v):=r/v
  55.  
  56. EXACT2_AUX3(r,u,x):=r+INT(u-DIF(r,x),x)
  57.  
  58. EXACT2_AUX2(r,x,y,v):=EXACT2_AUX3(INT(DIF(r,v),y),LIM(r,v,0),x)
  59.  
  60. EXACT2_AUX1(p,q,x,y,v):=p+EXACT2_AUX2(q-DIF(p,x)-v*DIF(p,y),x,y,v)
  61.  
  62. EXACT2(p,q,x,y,v,c):=IF((v*DIF(p,y,2)+2*DIF(DIF(p,x),y)-DIF(DIF(q,y),v))*v+~
  63.    DIF(p,x,2)-DIF(DIF(q,x),v)+DIF(q,y)=0 AND~
  64.    v*DIF(DIF(p,y),v)+DIF(DIF(p,x),v)+2*DIF(p,y)-DIF(q,v,2)=0,~
  65.  EXACT2_AUX1(INT(p,v),q,x,y,v)=c,"inapplicable","inapplicable")
  66.