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日