|
|
◆ Cbesy()
| Sub Cbesy |
( |
Z As |
Complex, |
|
|
Nu As |
Double, |
|
|
N As |
Long, |
|
|
Y() As |
Complex, |
|
|
Info As |
Long, |
|
|
Optional Kode As |
Long = 1 |
|
) |
| |
第2種ベッセル関数 Yν(z) (複数次数) (実数次) (複素引数)
- 目的
- 本ルーチンは第2種ベッセル関数Yν(z)を, 複素数 z および非負の実数次数ν, ν+1, ... について求める.
オーバーフローを避けるためにスケーリング・オプションを使用することができる.
- 引数
-
| [in] | Z | 引数 z. (Z <> 0) |
| [in] | Nu | 計算する最初の次数. (Nu >= 0) |
| [in] | N | 計算する次数の数. (Nu 〜 Nu+N-1 次の N 個の値を計算する) (N >= 1) |
| [out] | Y() | 配列 Y(LY - 1) (LY >= N)
第2種ベッセル関数値.
Kode = 1: Yν(z) (ν = Nu 〜 Nu+N-1)
Kode = 2: exp(abs(im(z)))*Yν(z) (ν = Nu 〜 Nu+N-1) |
| [out] | Info | = 0: 正常終了.
= -1: パラメータ Z の誤り. (Z = 0)
= -2: パラメータ Nu の誤り. (Nu < 0)
= -3: パラメータ N の誤り. (N < 1)
= -4: パラメータ Y() の誤り.
= -6: パラメータ Kode の誤り. (Kode <> 1 かつ Kode <> 2)
= nz (0 < nz <= N): アンダーフローのためY()の最後のnz個の要素が0に設定された.
= N+1: 精度警告. (|Z|またはNu+N-1が大きいため精度が半分以下になった)
= N+2: 精度エラー. (|Z|またはNu+N-1が大きすぎるため正しく計算できない)
= N+3: abs(Z)が小さすぎる, および/または, Nu+N-1が大きすぎるためオーバーフローが起きた.
= N+4: アルゴリズムのエラー. (収束しなかった) |
| [in] | Kode | (省略可)
スケーリングの指定. (省略時 = 1)
= 1: スケーリングなし.
= 2: 指数スケーリングあり. |
- 出典
- SLATEC
|