|
|
◆ cairy()
| void cairy |
( |
doublecomplex |
z, |
|
|
int |
id, |
|
|
int |
kode, |
|
|
doublecomplex * |
ai, |
|
|
int * |
info |
|
) |
| |
エアリー関数 Ai(z) またはその導関数 Ai'(z) (複素引数)
- 目的
- cairyはエアリー関数 Ai(z) またはその導関数 Ai'(z) を求める.
Ai(z) = (1/π) * ∫ cos((1/3)t^3 + zt) dt [0, ∞]
オーバーフローを避けるためにスケーリング・オプションを使用することができる.
- 引数
-
| [in] | z | 引数 z. |
| [in] | id | 導関数の次数.
= 0: Ai(z) を求める.
= 1: Ai'(z) を求める. |
| [in] | kode | スケーリングの指定.
= 1: スケーリングなし.
= 2: 指数スケーリングあり. |
| [out] | ai | エアリー関数 Ai(z) またはその導関数 Ai'(z).
kode = 2 の場合, exp((2/3)*z^(3/2)) でスケーリングする.
info < 0 の場合, ai = 0 を返す. |
| [out] | info | = 0: 正常終了.
= -2: 入力パラメータ id の誤り. (id != 0 かつ id != 1)
= -3: 入力パラメータ kode の誤り. (kode != 1 かつ kode != 2)
= 1: アンダーフローのため ai = 0 とした. (kode = 1において-π/3 < arg(z) < π/3)
= 2: 精度警告. (精度が半分以下になった)
= 3: 精度エラー. (正しく計算できない)
= 4: kode = 1においてre(z)が大きすぎるためオーバーフローが起きた. |
- 出典
- SLATEC
|