SI/DSI,CI/DCI (正弦および余弦積分関数)

作成 二宮 市三  1983年5月 
形式 関数 言語:FORTRAN 75,130,74,134行 

概要
SI(DSI)は単(倍)精度実数 xに対して,関数 Si(x)を単(倍)精度で計算する.

CI(DCI)は単(倍)精度実数 xに対して,関数 Ci(x)を単(倍)精度で計算する.

ただし,

Si(x) = ∫0x(sin t / t)dt, Ci(x) = -∫ x(cos t / t)dt
使用法
(1)
SI(x),CI(x), DSI(d),DCI(d)
x(d)は単(倍)精度型の任意の式である.DSI,DCIは倍精度型の宣言を要する.
(2)
引数の範囲: SI(x),DSI(d)については制限なし.
CI(x),DCI(d)については 0 < x, 0 < d.
(3)
エラー処理: 範囲外の引数が与えられた場合は,エラーとし,メッセージを印刷し,関数値を 0として計算を続行する.(FNERST 参照)
計算法
0.
x < 0のとき正弦積分は Si(-x) = -Si(x)により x > 0の場合に還元する.
余弦積分はエラーとなる.
1.
0 ≦ x ≦ 2(余弦積分の場合は 0 < x ≦ 2)ならば近似 多項式 As, Ac によって
Si(x) = xAs(x2), Ci(x) = Ac(x2) + log x
と計算する.
2.
2 < x ≦ 4ならば,近似多項式 Bs, Bcによって
Si(x) = Bs(x - 3), Ci(x) = Bc(x - 3)
と計算する.
3.
4 < x ≦ 6ならば,近似多項式 Cs, Ccによって
Si(x) = Cs(x - 5), Ci(x) = Cc(x - 5)
と計算する.
4.
6 < x ≦ 8ならば,近似多項式 Ds, Dcによって
Si(x) = Ds(x - 7), Ci(x) = Dc(x - 7)
と計算する.
5.
8 < x ≦ 8.23・105(3.53・1015)ならば, 近似有理式 E, Fによって
R = E(t), φ = tF(t), t = 8/x
Si(x) = π/2 - Rt cos(x - φ), Ci(x) = Rt sin(x - φ)
と計算する.
6.
x > 8.23・105(3.53・1015)ならば
Si(x) = π/2, Ci(x) = 0
と計算する.
参考文献
[1]Handbook of Mathematical Functions,Dover, N.Y.,pp(997-1005)(1970).

Yohsuke HOSODA 平成15年9月29日