ベッセル関数: _j0
、 _j1
、 _jn
、 _y0
、 _y1
、 _yn
0、1、または n の順序の、最初または 2 番目の種類の Bessel 関数を計算します。 Bessel 系関数は電磁波理論の数学でよく使用されます。
構文
double _j0(
double x
);
double _j1(
double x
);
double _jn(
int n,
double x
);
double _y0(
double x
);
double _y1(
double x
);
double _yn(
int n,
double x
);
パラメーター
x
浮動小数点値。
n
Bessel 系関数の整数順序。
戻り値
これらのルーチンはそれぞれ、 x
の Bessel 関数を返します。 x
、 _y0
、または _y1
関数で _yn
が負の場合、ルーチンは errno
を EDOM
に設定し、 _DOMAIN
エラー メッセージを stderr
に出力し、 HUGE_VAL
を返します。 _matherr
を使用することにより、エラー処理を変更することができます。
解説
_j0
ルーチン、 _j1
ルーチン、 _jn
ルーチンは、最初の種類の Bessel 関数を返します。順序はそれぞれ、0、1、n です。
入力 | SEH 例外 | _matherr 例外 |
---|---|---|
± QNaN、IND | INVALID |
_DOMAIN |
_y0
ルーチン、 _y1
ルーチン、 _yn
ルーチンは、2 番目の種類の Bessel 関数を返します。順序はそれぞれ、0、1、n です。
入力 | SEH 例外 | _matherr 例外 |
---|---|---|
± QNaN、IND | INVALID |
_DOMAIN |
± 0 | ZERODIVIDE |
_SING |
|x| < 0.0 |
INVALID |
_DOMAIN |
既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT でのグローバル状態」を参照してください。
要件
ルーチンによって返される値 | 必須ヘッダー |
---|---|
_j0 、 _j1 、 _jn 、 _y0 、 _y1 、 _yn |
<cmath> (C++)、<math.h> (C、C++) |
互換性の詳細については、「 Compatibility」を参照してください。
例
// crt_bessel1.c
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 2.387;
int n = 3, c;
printf( "Bessel functions for x = %f:\n", x );
printf( " Kind Order Function Result\n\n" );
printf( " First 0 _j0( x ) %f\n", _j0( x ) );
printf( " First 1 _j1( x ) %f\n", _j1( x ) );
for( c = 2; c < 5; c++ )
printf( " First %d _jn( %d, x ) %f\n", c, c, _jn( c, x ) );
printf( " Second 0 _y0( x ) %f\n", _y0( x ) );
printf( " Second 1 _y1( x ) %f\n", _y1( x ) );
for( c = 2; c < 5; c++ )
printf( " Second %d _yn( %d, x ) %f\n", c, c, _yn( c, x ) );
}
Bessel functions for x = 2.387000:
Kind Order Function Result
First 0 _j0( x ) 0.009288
First 1 _j1( x ) 0.522941
First 2 _jn( 2, x ) 0.428870
First 3 _jn( 3, x ) 0.195734
First 4 _jn( 4, x ) 0.063131
Second 0 _y0( x ) 0.511681
Second 1 _y1( x ) 0.094374
Second 2 _yn( 2, x ) -0.432608
Second 3 _yn( 3, x ) -0.819314
Second 4 _yn( 4, x ) -1.626833