|
|
◆ _cbesy()
| void _cbesy |
( |
double _Complex |
z, |
|
|
double |
nu, |
|
|
int |
kode, |
|
|
int |
n, |
|
|
double _Complex |
y[], |
|
|
double _Complex |
work[], |
|
|
int * |
info |
|
) |
| |
第2種ベッセル関数 Yν(z) (複数次数) (実数次) (複素引数)
- 目的
- cbesyは第2種ベッセル関数Yν(z)を, 複素数 z および非負の実数次数ν, ν+1, ... について求める.
オーバーフローを避けるためにスケーリング・オプションを使用することができる.
- 引数
-
| [in] | z | 引数 z. (z != 0) |
| [in] | nu | 最初の次数 ν. (nu >= 0) |
| [in] | kode | スケーリングの指定.
= 1: スケーリングなし.
= 2: 指数スケーリングあり. |
| [in] | n | 計算する次数の数 n. (nu 〜 nu+n-1 次の n 個の値を計算する) (n >= 1) |
| [out] | y[] | 配列 y[ly] (ly >= n)
第2種ベッセル関数値.
kode = 1: Yν(z) (ν = nu 〜 nu+n-1)
kode = 2: exp(abs(im(z)))*Yν(z) (ν = nu 〜 nu+n-1) |
| [out] | work[] | Array work[lwork] (lwork >= n)
作業領域. |
| [out] | info | = 0: 正常終了.
= -1: 入力パラメータ z の誤り. (z = 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: abs(z)が小さすぎる, または, nu+n-1が大きすぎるためオーバーフローが起きた.
= n+4: アルゴリズムのエラー. (収束しなかった) |
- 出典
- SLATEC
|