二重指数関数型積分法の有効な使用法

1.収束の遅い解析解の計算
2.特殊函数の積分表示を使用した計算

1 111dx n dx n 1 ....dx 10 ( x 1 x 2 ....x n ( x 1  x 2  ....  x n ))I n    ........
0 0

  0.2の解析解の計算と DEに関して有限値を持つ事は ,x 1  0, x 2  0,...., x n  0の場合
x 1  x 2  ....  x n n
 x 1 x 2 .....x n (等号は x 1  x 2  ....  x n )nの関係式を使用する。

n222

25
  (21.4  2)  I 2 142 3(1  ) 22

解析解  1.66762994758580
125n3 3  (3 2.2  3  2 2.2  3)  I 3 663

3 4(1  ) 33

解析解  1.88787303406103
n4 4432
 ( log(4)  18  log(3)  8  log(2))  I 4 3

解析解  2.21178596178275

4 5(1  ) 44

n  2の場合を計算すると
1 1 x1 111dydx0 0 ( xy( x  y)) 0 0 ( xy( x  y))  dydx
111dydx0 1 x ( xy ( x  y ))

 
1 y

1 x

11 dxdy
dydx



0 0 ( xy ( x  y ))0 0 ( xy ( x  y ))
1 x

1dydx

0 0 ( xy ( x  y ))

 2 
1 1xdtdx ( y  tx , dy  xdt )3 t (1  t )0 0 x

 2 

1

2
1
dt



2  3 0 t (1  t )
2( 1) n (  n )()2  3 n 0 n!( )(n  1   )解析解  1.66762994758580
ただし、計算機で具体 的に計算できるかという問題が発生する 。
n!の計算は指数部11ビット ,15ビットでそれぞれ n  170,1700でオーバーフローが発 生する。

1

このため

1
0 (t(1  t))  dtの展開式を

1(1) n (  1)........(  n  1)
1   2   n 2n!(n  1  )

 2  2  2  (  1)........(  2n  1)[ 2  (2n  2)  2(2n  1)]
(1  )(2  ) n 1(2n  1)!(2n  1  )(2n  2  )と変形し ,a0  1a i 1  a i (  2(i  1))(  2(i  1)  i)
2i(2i  1)の漸化式を作成して11 2  2  2  a n [ 2  (2n  2)  2(2n  1)]
0 (t(1  t))  dt  (1  )(2  )  (2n  1  )(2n  2  )n 1で計算する。この式の 収束は非常に遅く ,DE計算が非常に有効とな る。
DEでn  448, h  0.5 6 , 倍精度演算と展開式で倍精度演算 ,4倍精度演算で実行した 結果を次ぎに示します。

展開式による計算
計算結果
N=2**J 倍精度
J1.66762994758580
16 1.66762994749020
17 1.66762994755834
18 1.66762994757791
19 1.66762994758353
20 1.6676299475851521 1.66762994758561
22 1.66762994758574
23 1.66762994758578
24 1.66762994758579
25 1.66762994758580

4倍精度
1.66762994758580
1.66762994749020
1.66762994755834
1.66762994757791
1.66762994758353
1.66762994758515
1.66762994758561
1.66762994758574
1.66762994758578
1.66762994758579
1.66762994758580

DE(倍精度演算)X5570 1CPU計算
result= 1.66762994758580
gosa= 0.000000000000000E+000
elapse= 4.999999946448952E-004 sec

特殊函数の積分表示による計算
分点数 N  448, 刻み幅 h  0.5 6DE(倍精度計算 )積分変数変換 区間[10 30 ,1  2 53 ]精度改善版
分点数 N  550, 刻み幅 h  0.5 6
積分変数変換 区間[10 150 ,1  2 53 ] (z) d' (z)log  ( z ) dz
(z)    (n 011)znn 11x  xz
   dx(1  x ) x0 (1)   result = - 0.577215664901533
gosa = 0.000000000000000E + 000
 (2)  1 - 
result = 0.422784335098467
gosa = 0.000000000000000E + 000

1 (z  1)   (z) z (3)  0.922784335098467
result  0.922784335098467
gosa  4.440892098500626E - 016
233)     log(3) 326
result  - 1.31823441578659

(gosa  0.000000000000000E  000
133
 ( )     log(3) 
326
result  - 3.13203377989309
gosa  1.277111749686810E - 010
精度改善版
result  - 3.13203378002081
gosa  8.881784197001252E - 016

1)     3 log(2) 24
result  - 4.22745346663955

(gosa  6.673671482104737E - 008
精度改善版
result  - 4.22745353337626
gosa  8.881784197001252E - 016
3)     3 log(2) 
24result  - 1.08586087978647
gosa  2.220446049250313E - 016

(d2dlog  ( z ) (z)  ' (z) dz
dz 21(  log( t )) t z 11dt
  2t
1n  0 (z  n)0
 ' ( z  1)   ' ( z ) 1z2

2
 ' (1) 6
result = 1.64493406684823
gosa = - 2.220446049250313E - 016

 ' ( 2)  0.644934066848226
result  0.644934066848226
gosa  4.440892098500626E - 016
 ' (3)  0.394934066848226
result  0.394934066848226
gosa  3.885780586188048E - 016
21
 ' ( )  3 ( 2) 22
result  4.93480220054464
gosa  3.996802888650564E - 014
精度改善版
result 4.93480220054468

gosa  8.881784197001252E - 016
1  (011)dt
1 tlog( t )result = 0.577215664901533
gamma = 0.577215664901533
1    log | log( t ) | dt
0

result = 0.577215664901532
gamma = 0.577215664901533

z)  log(2)21( 1) nt z 1dt1 tn 0 z  n0( z )   ( z )   (1)
22result = 1.57079632679490

(gosa = - 4.440892098500626E - 016
1
( )  log(2) 
33
result  2.50694654466645
gosa  1.277116190578909E - 010
精度改善版
result 2.50694654479416

gosa  0.000000000000000E  0002)   log(2) 
33
result  1.12065218367427

(gosa  2.220446049250313E - 016

11
0 log | log(x ) |dx  0.154479641320
x1で主値を取る。
eresult  - 0.154479641320290
eps  4.698300000000000E - 010
gosa  2.900180096077065E - 013
算法( 0  1.2 105 ,  i 1   i / 1.2, i  0.......,14)eps  0.37794771D - 09
result  - 0.154479633755354673D  00
ex : 15 - 0.1544796400102996D  00
0.285D - 09

算法( 0  1.2 44 ,  i 1   i / 1.2, i  0.......,14)
倍精度演算精度改善

eps= 0.25555697D-04
result= -0.154479641220427899D+00
ex -0.154479641320056010D+00 0.207D-09 -0.56011D-13
ex -0.154479641319856031D+00 0.453D-12 0.14397D-12
ex -0.154479641320710237D+00 0.177D-11 -0.71024D-12
ex -0.154479641321900812D+00 0.150D-11 -0.19008D-11
ex -0.154479641320363154D+00 0.303D-11 -0.36315D-12
ex -0.154479641320364430D+00 0.513D-13 -0.36443D-12
ex -0.154479641320361766D+00 0.745D-13 -0.36177D-12
ex: 15 -0.1544796413203644D+00 0.619D-14算法( 0  1.2 105 ,  i 1   i / 1.2, i  0.......,14)4倍精度演算eps= 0.37794771D-09
result= -0.154479641320933814D+00
ex -0.154479641319995629D+00 0.289D-11 0.43710D-14
ex -0.154479641320044100D+00 0.237D-12 -0.44100D-13
ex -0.154479641320043417D+00 0.186D-14 -0.43417D-13
ex -0.154479641320041434D+00 0.237D-14 -0.41434D-13
ex -0.154479641320042752D+00 0.292D-14 -0.42752D-13
ex -0.154479641320042742D+00 0.487D-16 -0.42742D-13
ex -0.154479641320042743D+00 0.514D-17 -0.42743D-13
ex: 15 -0.1544796413200427D+00 0.737D-18

永年0と考えられてきた(200年近く)積分値がここまで正しく計算されている。