半無限区間数値積分

 投稿者:しばっち  投稿日:2019年 8月22日(木)20時34分4秒
  半無限区間[a,∞]の数値積分を行います。

https://ja.wikipedia.org/wiki/数値積分

下記のように変数変換すると

  /∞           /1
  | f[x]dx ---> | {f[a+(1-t)/t]}/t^2dt
  /a            /0

積分区間は[0,1]となります。

被積分関数 f(x)=1/(x*x+1)として

半無限区間積分をリーマン和、台形則、シンプソン則等で行います。

  /∞
  | 1/(1+x*x)dx = atan(∞)=π/2  ∴ tan(π/2)=∞
  /0

DECLARE EXTERNAL FUNCTION LAGUERRE,DE
PRINT INTEGRAL(0,8192)
PRINT INTEGRAL2(0,8192)
PRINT INTEGRAL3(0,8192)
PRINT CLENSHAW(0)
PRINT LAGUERRE
PRINT DE
PRINT "----------------------"
PRINT PI/2 !'真値
END

EXTERNAL  FUNCTION FUNC(X)
LET FUNC=1/(X*X+1)
END FUNCTION

EXTERNAL FUNCTION INTEGRAL(C,N) !'リーマン和
LET A=0
LET B=1
LET H=(B-A)/(N+1)
FOR J=0 TO N
   LET T=A+H*J
   IF T<>0 THEN  LET S=S+H*FUNC(C+(1-T)/T)/T/T
NEXT J
LET INTEGRAL=S
END FUNCTION

EXTERNAL  FUNCTION INTEGRAL2(C,N) !'台形則
DIM R(0 TO 1)
LET A=0
LET B=1
LET R(0)=1/2
LET R(1)=1/2
LET H=(B-A)/N
FOR K=0 TO N-1
   FOR J=0 TO 1
      LET T=A+H*(K+J)
      IF T<>0 THEN
         LET S=S+H*R(J)*FUNC(C+(1-T)/T)/T/T
      END IF
   NEXT J
NEXT K
LET INTEGRAL2=S
END FUNCTION

EXTERNAL  FUNCTION INTEGRAL3(C,N) !'シンプソン則
DIM R(0 TO 2)
LET A=0
LET B=1
LET R(0)=1/3
LET R(1)=4/3
LET R(2)=1/3
LET H=(B-A)/N/2
FOR K=0 TO N-1
   FOR J=0 TO 2
      LET T=A+H*(2*K+J)
      IF T<>0 THEN
         LET S=S+H*R(J)*FUNC(C+(1-T)/T)/T/T
      END IF
   NEXT J
NEXT K
LET INTEGRAL3=S
END FUNCTION

EXTERNAL  FUNCTION DE !'二重指数関数法
LET H=1/1024
FOR T=-4 TO 4 STEP H
   LET S=S+FUNC(G(T))*GG(T)*H
NEXT T
LET DE=S

FUNCTION G(X)
LET G=EXP(PI/2*SINH(X))
END FUNCTION

FUNCTION GG(X)
LET GG=PI/2*COSH(X)*EXP(PI/2*SINH(X))
END FUNCTION
END FUNCTION

EXTERNAL  FUNCTION CLENSHAW(C) !'クレンショ・カーティス則(101次)
LET A=0
LET B=1
LET U=(B+A)/2
LET V=(B-A)/2
FOR I=1 TO 101
   READ X,W
   LET T=U+V*X
   IF T<>0 THEN
      LET S=S+W*FUNC(C+(1-T)/T)/T/T*V
   END IF
NEXT I
LET CLENSHAW=S
DATA 1.00000000000000000e+00 , 1.00010001000100010e-04
DATA 9.99506560365731557e-01 , 9.63427864108456136e-04
DATA 9.98026728428271562e-01 , 1.98081792719822447e-03
DATA 9.95561964603080013e-01 , 2.95245609614722172e-03
DATA 9.92114701314477831e-01 , 3.93984190353666597e-03
DATA 9.87688340595137726e-01 , 4.91296972502008171e-03
DATA 9.82287250728688681e-01 , 5.88786182087318069e-03
DATA 9.75916761938747399e-01 , 6.85235068906842241e-03
DATA 9.68583161128631119e-01 , 7.81345860526407593e-03
DATA 9.60293685676943072e-01 , 8.76425733912219235e-03
DATA 9.51056516295153572e-01 , 9.70846937364847499e-03
DATA 9.40880768954225472e-01 , 1.06414202312393182e-02
DATA 9.29776485888251404e-01 , 1.15652668005788029e-02
DATA 9.17754625683981141e-01 , 1.24765169990625641e-02
DATA 9.04827052466019528e-01 , 1.33764703665677760e-02
DATA 8.91006524188367862e-01 , 1.42623390377151899e-02
DATA 8.76306680043863587e-01 , 1.51349096730287363e-02
DATA 8.60742027003943637e-01 , 1.59918539088989191e-02
DATA 8.44327925502015079e-01 , 1.68336341074041766e-02
DATA 8.27080574274561825e-01 , 1.76582438497441395e-02
DATA 8.09016994374947424e-01 , 1.84659337977986137e-02
DATA 7.90155012375690365e-01 , 1.92549367222920903e-02
DATA 7.70513242775789231e-01 , 2.00253634902182446e-02
DATA 7.50111069630459542e-01 , 2.07756336735078458e-02
DATA 7.28968627421411523e-01 , 2.15057668174786011e-02
DATA 7.07106781186547524e-01 , 2.22143348022439743e-02
DATA 6.84547105928688674e-01 , 2.29013000253010056e-02
DATA 6.61311865323651877e-01 , 2.35653632474046753e-02
DATA 6.37423989748689710e-01 , 2.42064547365992693e-02
DATA 6.12907053652976493e-01 , 2.48233878124713492e-02
DATA 5.87785252292473129e-01 , 2.54160795253789001e-02
DATA 5.62083377852130600e-01 , 2.59834441304292331e-02
DATA 5.35826794978996618e-01 , 2.65254001512226545e-02
DATA 5.09041415750371300e-01 , 2.70409543299964853e-02
DATA 4.81753674101715275e-01 , 2.75300383431524965e-02
DATA 4.53990499739546792e-01 , 2.79917451479671329e-02
DATA 4.25779291565072649e-01 , 2.84260290424975911e-02
DATA 3.97147890634780614e-01 , 2.88320644280818968e-02
DATA 3.68124552684677959e-01 , 2.92098360279121910e-02
DATA 3.38737920245291381e-01 , 2.95585959478977955e-02
DATA 3.09016994374947424e-01 , 2.98783658559102421e-02
DATA 2.78991106039229252e-01 , 3.01684725189225605e-02
DATA 2.48689887164854788e-01 , 3.04289800589999179e-02
DATA 2.18143241396542552e-01 , 3.06592873105537182e-02
DATA 1.87381314585724631e-01 , 3.08595055515359825e-02
DATA 1.56434465040230869e-01 , 3.10291033544936972e-02
DATA 1.25333233564304245e-01 , 3.11682432011530392e-02
DATA 9.41083133185143185e-02 , 3.12764611929747937e-02
DATA 6.27905195293133761e-02 , 3.13539745312858345e-02
DATA 3.14107590781282938e-02 , 3.14003846411362968e-02
DATA -1.01615129213537628e-64 , 3.14159665279103048e-02
DATA -3.14107590781282938e-02 , 3.14003846411362968e-02
DATA -6.27905195293133761e-02 , 3.13539745312858345e-02
DATA -9.41083133185143185e-02 , 3.12764611929747937e-02
DATA -1.25333233564304245e-01 , 3.11682432011530392e-02
DATA -1.56434465040230869e-01 , 3.10291033544936972e-02
DATA -1.87381314585724631e-01 , 3.08595055515359825e-02
DATA -2.18143241396542552e-01 , 3.06592873105537182e-02
DATA -2.48689887164854788e-01 , 3.04289800589999179e-02
DATA -2.78991106039229252e-01 , 3.01684725189225605e-02
DATA -3.09016994374947424e-01 , 2.98783658559102421e-02
DATA -3.38737920245291381e-01 , 2.95585959478977955e-02
DATA -3.68124552684677959e-01 , 2.92098360279121910e-02
DATA -3.97147890634780614e-01 , 2.88320644280818968e-02
DATA -4.25779291565072649e-01 , 2.84260290424975911e-02
DATA -4.53990499739546792e-01 , 2.79917451479671329e-02
DATA -4.81753674101715275e-01 , 2.75300383431524965e-02
DATA -5.09041415750371300e-01 , 2.70409543299964853e-02
DATA -5.35826794978996618e-01 , 2.65254001512226545e-02
DATA -5.62083377852130600e-01 , 2.59834441304292331e-02
DATA -5.87785252292473129e-01 , 2.54160795253789001e-02
DATA -6.12907053652976493e-01 , 2.48233878124713492e-02
DATA -6.37423989748689710e-01 , 2.42064547365992693e-02
DATA -6.61311865323651877e-01 , 2.35653632474046753e-02
DATA -6.84547105928688674e-01 , 2.29013000253010056e-02
DATA -7.07106781186547524e-01 , 2.22143348022439743e-02
DATA -7.28968627421411523e-01 , 2.15057668174786011e-02
DATA -7.50111069630459542e-01 , 2.07756336735078458e-02
DATA -7.70513242775789231e-01 , 2.00253634902182446e-02
DATA -7.90155012375690365e-01 , 1.92549367222920903e-02
DATA -8.09016994374947424e-01 , 1.84659337977986137e-02
DATA -8.27080574274561825e-01 , 1.76582438497441395e-02
DATA -8.44327925502015079e-01 , 1.68336341074041766e-02
DATA -8.60742027003943637e-01 , 1.59918539088989191e-02
DATA -8.76306680043863587e-01 , 1.51349096730287363e-02
DATA -8.91006524188367862e-01 , 1.42623390377151899e-02
DATA -9.04827052466019528e-01 , 1.33764703665677760e-02
DATA -9.17754625683981141e-01 , 1.24765169990625641e-02
DATA -9.29776485888251404e-01 , 1.15652668005788029e-02
DATA -9.40880768954225472e-01 , 1.06414202312393182e-02
DATA -9.51056516295153572e-01 , 9.70846937364847499e-03
DATA -9.60293685676943072e-01 , 8.76425733912219235e-03
DATA -9.68583161128631119e-01 , 7.81345860526407593e-03
DATA -9.75916761938747399e-01 , 6.85235068906842241e-03
DATA -9.82287250728688681e-01 , 5.88786182087318069e-03
DATA -9.87688340595137726e-01 , 4.91296972502008171e-03
DATA -9.92114701314477831e-01 , 3.93984190353666597e-03
DATA -9.95561964603080013e-01 , 2.95245609614722172e-03
DATA -9.98026728428271562e-01 , 1.98081792719822447e-03
DATA -9.99506560365731557e-01 , 9.63427864108456136e-04
DATA -1.00000000000000000e+00 , 1.00010001000100010e-04
END FUNCTION

EXTERNAL  FUNCTION LAGUERRE !'ガウス・ラゲール則(100次)
FOR I=1 TO 100
   READ X,W
   LET S=S+FUNC(X)*W
NEXT I
LET LAGUERRE=S
DATA 1.43861469954196695e-02 , 3.69199393145479939e-02
DATA 7.58036120233571246e-02 , 8.59513457259213541e-02
DATA 1.86314102057187174e-01 , 1.35076347286164061e-01
DATA 3.45969180991429091e-01 , 1.84240699565007308e-01
DATA 5.54810937580915510e-01 , 2.33451446141280422e-01
DATA 8.12891284115668845e-01 , 2.82719843781644522e-01
DATA 1.12027383500754015e+00 , 3.32057878360216897e-01
DATA 1.47703432992382707e+00 , 3.81477785290452048e-01
DATA 1.88326082634239471e+00 , 4.30991959306325214e-01
DATA 2.33905384964603417e+00 , 4.80612941774710562e-01
DATA 2.84452654275535907e+00 , 5.30353428454059706e-01
DATA 3.39980482744571194e+00 , 5.80226284010330321e-01
DATA 4.00502758175865202e+00 , 6.30244559347020600e-01
DATA 4.66034683556890846e+00 , 6.80421510469613842e-01
DATA 5.36592798558511701e+00 , 7.30770618450149420e-01
DATA 6.12195003080401979e+00 , 7.81305610360941495e-01
DATA 6.92860582937617306e+00 , 8.32040481168061617e-01
DATA 7.78610237786251743e+00 , 8.82989516630006836e-01
DATA 8.69466111392216799e+00 , 9.34167317275462091e-01
DATA 9.65451824355508073e+00 , 9.85588823551736638e-01
DATA 1.06659250941216756e+01 , 1.03726934224870702e+00
DATA 1.17291484944722251e+01 , 1.08922457431477066e+00
DATA 1.28444711836410306e+01 , 1.14147064419276526e+00
DATA 1.40121922496942746e+01 , 1.19402413081576064e+00
DATA 1.52326276004666978e+01 , 1.24690210041551574e+00
DATA 1.65061104680819896e+01 , 1.30012214131052377e+00
DATA 1.78329919493263874e+01 , 1.35370240085620041e+00
DATA 1.92136415841360667e+01 , 1.40766162475714888e+00
DATA 2.06484479746683495e+01 , 1.46201919896081676e+00
DATA 2.21378194476567044e+01 , 1.51679519437351904e+00
DATA 2.36821847630023761e+01 , 1.57201041466404978e+00
DATA 2.52819938718340415e+01 , 1.62768644744729268e+00
DATA 2.69377187275742649e+01 , 1.68384571917076918e+00
DATA 2.86498541538912922e+01 , 1.74051155406139489e+00
DATA 3.04189187737909429e+01 , 1.79770823752838185e+00
DATA 3.22454560045206658e+01 , 1.85546108446184369e+00
DATA 3.41300351234215165e+01 , 1.91379651291594614e+00
DATA 3.60732524103799732e+01 , 1.97274212372123051e+00
DATA 3.80757323731070932e+01 , 2.03232678663398895e+00
DATA 4.01381290621155458e+01 , 2.09258073370242274e+00
DATA 4.22611274829847942e+01 , 2.15353566061109276e+00
DATA 4.44454451143118061e+01 , 2.21522483685843270e+00
DATA 4.66918335406515394e+01 , 2.27768322572867333e+00
DATA 4.90010802107724370e+01 , 2.34094761514158334e+00
DATA 5.13740103327039945e+01 , 2.40505676060352910e+00
DATA 5.38114889183556604e+01 , 2.47005154164453003e+00
DATA 5.63144229919617082e+01 , 2.53597513331185434e+00
DATA 5.88837639782820903e+01 , 2.60287319450557844e+00
DATA 6.15205102883961426e+01 , 2.67079407519059121e+00
DATA 6.42257101231015602e+01 , 2.73978904480897195e+00
DATA 6.70004645164193116e+01 , 2.80991254455399482e+00
DATA 6.98459306445583743e+01 , 2.88122246656126653e+00
DATA 7.27633254289745863e+01 , 2.95378046353468113e+00
DATA 7.57539294659399362e+01 , 3.02765229286837076e+00
DATA 7.88190913194114722e+01 , 3.10290819996702723e+00
DATA 8.19602322190601240e+01 , 3.17962334622599305e+00
DATA 8.51788512112189002e+01 , 3.25787828803419159e+00
DATA 8.84765308173946112e+01 , 3.33775951423803578e+00
DATA 9.18549432630493089e+01 , 3.41936005079119265e+00
DATA 9.53158573488317206e+01 , 3.50278014286134288e+00
DATA 9.88611460476135277e+01 , 3.58812802653100353e+00
DATA 1.02492794923916561e+02 , 3.67552080449106105e+00
DATA 1.06212911488046816e+02 , 3.76508544287940603e+00
DATA 1.10023735616030917e+02 , 3.85695990978628010e+00
DATA 1.13927651188971624e+02 , 3.95129448009112296e+00
DATA 1.17927199132573227e+02 , 4.04825323641783232e+00
DATA 1.22025092070441621e+02 , 4.14801580236332780e+00
DATA 1.26224230844750388e+02 , 4.25077935211810824e+00
DATA 1.30527723206799413e+02 , 4.35676095061938881e+00
DATA 1.34938905040227408e+02 , 4.46620029107281231e+00
DATA 1.39461364554240157e+02 , 4.57936291287371349e+00
DATA 1.44098969977212724e+02 , 4.69654400377203816e+00
DATA 1.48855901397758249e+02 , 4.81807291708503687e+00
DATA 1.53736687547973031e+02 , 4.94431856997887791e+00
DATA 1.58746248511713104e+02 , 5.07569593525772319e+00
DATA 1.63889945582587233e+02 , 5.21267390086865928e+00
DATA 1.69173639810003025e+02 , 5.35578485438125065e+00
DATA 1.74603761182376627e+02 , 5.50563646260515840e+00
DATA 1.80187390940245696e+02 , 5.66292627184206617e+00
DATA 1.85932360239666971e+02 , 5.82845997074786263e+00
DATA 1.91847369372248329e+02 , 6.00317446373080380e+00
DATA 1.97942133102143257e+02 , 6.18816734184945025e+00
DATA 2.04227559567030508e+02 , 6.38473497877833258e+00
DATA 2.10715972861576943e+02 , 6.59442243137378966e+00
DATA 2.17421393272001481e+02 , 6.81908976786267612e+00
DATA 2.24359894788874608e+02 , 7.06100168500251082e+00
DATA 2.31550068025172484e+02 , 7.32295083409584501e+00
DATA 2.39013629751314924e+02 , 7.60843109395601347e+00
DATA 2.46776240967248490e+02 , 7.92188684818860845e+00
DATA 2.54868629257047430e+02 , 8.26908150662496626e+00
DATA 2.63328168469157893e+02 , 8.65765985897392721e+00
DATA 2.72201170024092537e+02 , 9.09803889452292582e+00
DATA 2.81546328283897389e+02 , 9.60488355686549461e+00
DATA 2.91440133616377107e+02 , 1.01996888715856387e+01
DATA 3.01985855251639154e+02 , 1.09156175227240177e+01
DATA 3.13329534004075524e+02 , 1.18073985027212477e+01
DATA 3.25691263437026520e+02 , 1.29741341509108124e+01
DATA 3.39435101923449617e+02 , 1.46215810644517866e+01
DATA 3.55261311888534132e+02 , 1.72847396480859001e+01
DATA 3.74984112834342679e+02 , 2.31715523384710306e+01
END FUNCTION
 

戻る