std::cyl_bessel_if
STD::cyl[医]贝塞尔[医]I,STD::cyl[医]贝塞尔[医]如果,STD::cyl[医]贝塞尔[医]白尔
double cyl_bessel_i( double ν, double x float cyl_bessel_if( float ν, float x long double cyl_bessel_il( long double ν, long double x | (1) | (since C++17) |
---|---|---|
Promoted cyl_bessel_i( Arithmetic ν, Arithmetic x | (2) | (since C++17) |
1%29计算正则修正圆柱贝塞尔函数成ν
和x
...
2%29一组重载或函数模板,用于%281%29中未涵盖的所有算术类型的参数组合。如果有任何争论积分型,它被铸造成double
.如果有任何争论long double
,则返回类型Promoted
也是long double
,否则返回类型总是double
...
参数
ν | - | the order of the function |
---|---|---|
x | - | the argument of the function) |
返回值
如果没有错误发生,则正则修正的圆柱贝塞尔函数的值ν
和x
,那就是我
ν%28x%29=Σ∞
K=0
%28x/2%29ν+2k
*。
K%21Γ%28ν+k+1%29
对于x≥0%29,返回%28。
错误处理
错误可以按数学[医]错误处理...
- 如果参数为nan,则返回nan,并且不报告域错误。
- 如果ν>=128,则行为是实现定义的。
注记
不支持C++17但支持的实现ISO 29124:2010,则提供此功能__STDCPP_MATH_SPEC_FUNCS__
由实现定义为值至少为201003L,且用户定义__STDCPP_WANT_MATH_SPEC_FUNCS__
在包含任何标准库头之前。
不支持iso 29124:2010但支持tr 19768:2007%28TR1%29的实现,在标头中提供此功能。tr1/cmath
和命名空间std::tr1
...
此功能的实现也是可以在中学里找到。...
例
二次
#include <cmath>
#include <iostream>
int main()
{
// spot check for ν == 0
double x = 1.2345;
std::cout << "I_0(" << x << ") = " << std::cyl_bessel_i(0, x) << '\n';
// series expansion for I_0
double 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
二次
外部链接
修正了第一类贝塞尔函数。来自MathWorld的一个Wolfram Web资源。
另见
cyl_bessel_jcyl_bessel_jfcyl_bessel_jl (C++17)(C++17)(C++17) | cylindrical Bessel functions (of the first kind) (function) |
---|
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。