名前空間
変種
操作

std::cyl_bessel_i, std::cyl_bessel_if, std::cyl_bessel_il

提供: cppreference.com
 
 
 
 
ヘッダ <cmath> で定義
double      cyl_bessel_i(double ν, double x );

float       cyl_bessel_if(float ν, float x  );

longdouble cyl_bessel_il(longdouble ν, longdouble x );
(1) (C++17以上)
Promoted    cyl_bessel_i( 算術型 ν, 算術型 x );
(2) (C++17以上)
1)νx正規変形円筒ベッセル関数を計算します。
2)(1) によってカバーされない算術型の引数のすべての組み合わせに対するオーバーロード集合または関数テンプレート。 いずれかの引数が整数型の場合は double にキャストされます。 いずれかの引数が longdouble の場合は戻り値の型 Promotedlongdouble であり、そうでなければ戻り値の型は必ず double です。

目次

[編集]引数

ν - 関数の次数
x - 関数の引数

[編集]戻り値

エラーが発生しなければ、 νx の正規変形円筒ベッセル関数、すなわち I
ν
(x) = Σ
k=0
(x/2)ν+2k
k!Γ(ν+k+1)
(x≥0 の場合) の値が返されます。

[編集]エラー処理

エラーは math_errhandling で規定されている通りに報告されます。

  • 引数が NaN の場合は、 NaN が返されます。 定義域エラーは報告されません。
  • ν>=128 の場合、動作は処理系定義です。

[編集]ノート

C++17 をサポートしないけれども ISO 29124:2010 をサポートする処理系は、 __STDCPP_MATH_SPEC_FUNCS__ が処理系によって少なくとも 201003L の値に定義されており、ユーザがいかなる標準ライブラリのヘッダもインクルードする前に __STDCPP_WANT_MATH_SPEC_FUNCS__ を定義する場合、この関数を提供します。

ISO 29124:2010 をサポートしなけれども TR 19768:2007 (TR1) をサポートする処理系は、ヘッダ <tr1/cmath> および名前空間 std::tr1 で、この関数を提供します。

この関数の実装は boost.math でも利用可能です。

[編集]

#include <cmath>#include <iostream>int main(){// spot check for ν == 0double x =1.2345;std::cout<<"I_0("<< x <<") = "<<std::cyl_bessel_i(0, x)<<'\n';   // series expansion for I_0double fct =1;double sum =0;for(int k =0; k <5; fct*=++k){ sum +=std::pow((x/2),2*k)/std::pow(fct,2);std::cout<<"sum = "<< sum <<'\n';}}

出力:

I_0(1.2345) = 1.41886 sum = 1 sum = 1.381 sum = 1.41729 sum = 1.41882 sum = 1.41886

[編集]外部リンク

Weisstein, Eric W. "Modified Bessel Function of the First Kind." From MathWorld--A Wolfram Web Resource.

[編集]関連項目

(第一種) 円筒ベッセル関数
(関数)[edit]
close