|
|
◆ _cbesj()
| void _cbesj |
( |
double _Complex |
z, |
|
|
double |
nu, |
|
|
int |
kode, |
|
|
int |
n, |
|
|
double _Complex |
y[], |
|
|
int * |
info |
|
) |
| |
第1種ベッセル関数 Jν(z) (複数次数) (実数次) (複素引数)
- 目的
- cbesjは第1種ベッセル関数Jν(z)を, 複素数 z および非負の実数次数ν, ν+1, ... について求める.
オーバーフローを避けるためにスケーリング・オプションを使用することができる.
- 引数
-
| [in] | z | 引数 z. |
| [in] | nu | 最初の次数 ν. (nu >= 0) |
| [in] | kode | スケーリングの指定.
= 1: スケーリングなし.
= 2: 指数スケーリングあり. |
| [in] | n | 計算する次数の数 n. (nu 〜 nu+n-1 次の n 個の値を計算する) (n >= 1) |
| [out] | y[] | 配列 y[ly] (ly >= n)
第1種ベッセル関数値.
kode = 1: Jν(z) (ν = nu 〜 nu+n-1)
kode = 2: exp(abs(im(z)))*Jν(z) (ν = nu 〜 nu+n-1) |
| [out] | info | = 0: 正常終了.
= -2: 入力パラメータ nu の誤り. (nu < 0)
= -3: 入力パラメータ kode の誤り. (kode != 1 かつ kode != 2)
= -4: 入力パラメータ n の誤り. (n < 1)
= nz (0 < nz <= n): アンダーフローのためy[]の最後のnz個の要素が0に設定された.
= n+1: 精度警告. (abs(z)またはnu+n-1が大きいため精度が半分以下になった)
= n+2: 精度エラー. (abs(z)またはnu+n-1が大きすぎるため正しく計算できない)
= n+3: kode = 1の場合にim(z)が大きすぎるためオーバーフローが起きた.
= n+4: アルゴリズムのエラー. (収束しなかった) |
- 出典
- SLATEC
|