std::cyl_bessel_j, std::cyl_bessel_jf, std::cyl_bessel_jl
Определено в заголовке <cmath> | ||
|---|---|---|
| (1) | ||
float cyl_bessel_j ( float nu, float x ); double cyl_bessel_j ( double nu, double x ); long double cyl_bessel_j ( long double nu, long double x ); |
(с C++17) (до C++23) | |
/* floating-point-type */ cy_bessel_j( /* floating-point-type */ nu,
/* floating-point-type */ x );
| (с C++23) | |
float cyl_bessel_jf( float nu, float x ); | (2) | (с C++17) |
long double cyl_bessel_jl( long double nu, long double x ); | (3) | (с C++17) |
| Дополнительные перегрузки | ||
Определено в заголовке <cmath> | ||
template< class Arithmetic1, class Arithmetic2 >
/* common-floating-point-type */
cyl_bessel_j( Arithmetic1 nu, Arithmetic2 x );
| (A) | (с C++17) |
nu и x. Библиотека предоставляет перегрузки std::cyl_bessel_j для всех неквалифицированных по типу cv чисел с плавающей запятой в качестве типа параметров nu и x.(с C++23)
Параметры
| nu | - | порядок функции |
| x | - | аргумент функции |
Значение результата
Если ошибки не возникли, возвращается значение цилиндрической функции Бесселя первого рода отnu и x, т.е. Jnu(x) = Σ∞k=0(-1)k(x/2)nu+2k/k!Γ(nu+k+1) (при x≥0). Обработка ошибок
Ошибки могут быть сообщены, как указано в math_errhandling:
- Если аргумент NaN, возвращается NaN, и ошибка области определения не сообщается.
- Если nu≥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.
Дополнительные перегрузки не обязаны предоставляться точно как (A). Они должны быть достаточны для того, чтобы для их первого аргумента num1 и второго аргумента num2:
| (до C++23) |
| Если Если такого типа чисел с плавающей запятой с наибольшим рангом и подрангом не существует, то разрешение перегрузки не приводит к пригодной кандидатуре из предоставленных перегрузок. | (с C++23) |
Пример
#include <cmath>
#include <iostream>
int main()
{
// spot check for nu == 0
const double x = 1.2345;
std::cout << "J_0(" << x << ") = " << std::cyl_bessel_j(0, x) << '\n';
// series expansion for J_0
double fct = 1;
double sum = 0;
for (int k = 0; k < 6; fct *= ++k)
{
sum += std::pow(-1, k) * std::pow(x / 2, 2 * k) / std::pow(fct, 2);
std::cout << "sum = " << sum << '\n';
}
}Вывод:
J_0(1.2345) = 0.653792 sum = 1 sum = 0.619002 sum = 0.655292 sum = 0.653756 sum = 0.653793 sum = 0.653792
См. также
|
(C++17)(C++17)(C++17) | модифицированные цилиндрические функции Бесселя (функция) |
Внешние ссылки
| Weisstein, Eric W. "Функция Бесселя первого рода." Из MathWorld — Wolfram Web Resource. |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/numeric/special_functions/cyl_bessel_j