BESSEL_Y関数

 投稿者:しばっち  投稿日:2015年 8月 1日(土)21時55分38秒
  CALL GINIT(800,400)
SET WINDOW 0,20,-1,1
DRAW GRID(1,1)
FOR N=0 TO 5
   SET LINE COLOR N+1
   FOR X=0 TO 20 STEP 1/16
      LET Y=BESSELY(N,X)
      PLOT LINES:X,Y;
   NEXT  X
   PLOT LINES
NEXT N
END

EXTERNAL SUB GINIT(XSIZE,YSIZE)
SET BITMAP SIZE XSIZE,YSIZE
SET WINDOW 0,XSIZE-1,YSIZE-1,0
SET POINT STYLE 1
SET COLOR MODE "REGULAR"
SET COLOR MIX(0) 0,0,0
SET COLOR MIX(1) 0,0,1
SET COLOR MIX(2) 1,0,0
SET COLOR MIX(3) 1,0,1
SET COLOR MIX(4) 0,1,0
SET COLOR MIX(5) 0,1,1
SET COLOR MIX(6) 1,1,0
SET COLOR MIX(7) 1,1,1
CLEAR
END SUB

EXTERNAL  FUNCTION INTEGRAL(R,Z) !'ガウス・ルジャンドル
LET A=0
LET B=PI
LET U=(B+A)/2
LET V=(B-A)/2
FOR I=1 TO 50
   READ X,C
   LET S=S+C*F(R,Z,U+V*X)*V
NEXT I
LET INTEGRAL=S/PI
DATA -.9988664044200710501854594,2.9086225531551409584007243E-03
DATA -.9940319694320907125851082,6.7597991957454015027788782E-03
DATA -.9853540840480058823090096,1.0590548383650969263569681E-02
DATA -.9728643851066920737133441,1.4380822761485574419378909E-02
DATA -.9566109552428079429977456,1.8115560713489390351259943E-02
DATA -.9366566189448779337808749,2.1780243170124792981592069E-02
DATA -.9130785566557918930897356,2.5360673570012390440194878E-02
DATA -.8859679795236130486375410,2.8842993580535198029906373E-02
DATA -.8554297694299460846113626,3.2213728223578016648165827E-02
DATA -.8215820708593359483562541,3.5459835615146154160734611E-02
DATA -.7845558329003992639053052,3.8568756612587675244770150E-02
DATA -.7444943022260685382605363,4.1528463090147697422411979E-02
DATA -.7015524687068222510895463,4.4327504338803275492022287E-02
DATA -.6558964656854393607816249,4.6955051303948432965633014E-02
DATA -.6077029271849502391803818,4.9400938449466314921243581E-02
DATA -.5571583045146500543155229,5.1655703069581138489905296E-02
DATA -.5044581449074642016514591,5.3710621888996246523458797E-02
DATA -.4498063349740387891471315,5.5557744806212517623567426E-02
DATA -.3934143118975651273942293,5.7189925647728383723029315E-02
DATA -.3355002454194373568369883,5.8600849813222445835122437E-02
DATA -.2762881937795319903276453,5.9785058704265457509576405E-02
DATA -.2160072368760417568472845,6.0737970841770216031750015E-02
DATA -.1548905899981459020716286,6.1455899590316663756406786E-02
DATA -.0931747015600861408544504,6.1936067420683243384087510E-02
DATA -.0310983383271888761123290,6.2176616655347262321033107E-02
DATA  .0310983383271888761123290,6.2176616655347262321033107E-02
DATA  .0931747015600861408544504,6.1936067420683243384087510E-02
DATA  .1548905899981459020716286,6.1455899590316663756406786E-02
DATA  .2160072368760417568472845,6.0737970841770216031750015E-02
DATA  .2762881937795319903276453,5.9785058704265457509576405E-02
DATA  .3355002454194373568369883,5.8600849813222445835122437E-02
DATA  .3934143118975651273942293,5.7189925647728383723029315E-02
DATA  .4498063349740387891471315,5.5557744806212517623567426E-02
DATA  .5044581449074642016514591,5.3710621888996246523458797E-02
DATA  .5571583045146500543155229,5.1655703069581138489905296E-02
DATA  .6077029271849502391803818,4.9400938449466314921243581E-02
DATA  .6558964656854393607816249,4.6955051303948432965633014E-02
DATA  .7015524687068222510895463,4.4327504338803275492022287E-02
DATA  .7444943022260685382605363,4.1528463090147697422411979E-02
DATA  .7845558329003992639053052,3.8568756612587675244770150E-02
DATA  .8215820708593359483562541,3.5459835615146154160734611E-02
DATA  .8554297694299460846113626,3.2213728223578016648165827E-02
DATA  .8859679795236130486375410,2.8842993580535198029906373E-02
DATA  .9130785566557918930897356,2.5360673570012390440194878E-02
DATA  .9366566189448779337808749,2.1780243170124792981592069E-02
DATA  .9566109552428079429977456,1.8115560713489390351259943E-02
DATA  .9728643851066920737133441,1.4380822761485574419378909E-02
DATA  .9853540840480058823090096,1.0590548383650969263569681E-02
DATA  .9940319694320907125851082,6.7597991957454015027788782E-03
DATA  .9988664044200710501854594,2.9086225531551409584007243E-03
END FUNCTION

EXTERNAL  FUNCTION F(N,X,T)
LET F=SIN(X*SIN(T)-N*T)
END FUNCTION

EXTERNAL  FUNCTION INTEGRAL2(R,Z) !'ガウス・ラゲール
FOR I=1 TO 6
   READ X,W
   LET S=S+FF(R,Z,X)*EXP(X)*W
NEXT I
LET INTEGRAL2=S/PI
DATA     .2228466041792606894643548,4.5896467394996359356828488E-01
DATA    1.1889321016726230307431509,4.1700083077212099411337757E-01
DATA    2.9927363260593140776913253,1.1337338207404497573870619E-01
DATA    5.7751435691045105018398304,1.0399197453149074898913303E-02
DATA    9.8374674183825899177155470,2.6101720281493205947924286E-04
DATA   15.9828739806017017825457916,8.9854790642962123882529205E-07
END FUNCTION

EXTERNAL  FUNCTION FF(N,X,T)
LET FF=(EXP(N*T)+(-1)^N*EXP(-N*T))*EXP(-X*SINH(T))
END FUNCTION

EXTERNAL  FUNCTION BESSELY(N,X) !'Nは整数
LET S=INTEGRAL(INT(ABS(N)),X)-INTEGRAL2(INT(ABS(N)),X)
IF N<0 THEN LET S=S*(-1)^INT(ABS(N))
LET BESSELY=S
END FUNCTION
 

戻る