Namespaces
Variants

std:: cyl_bessel_k, std:: cyl_bessel_kf, std:: cyl_bessel_kl

From cppreference.net
Definido en el encabezado <cmath>
(1)
float cyl_bessel_k ( float nu, float x ) ;

double cyl_bessel_k ( double nu, double x ) ;

long double cyl_bessel_k ( long double nu, long double x ) ;
(desde C++17)
(hasta C++23)
/* floating-point-type */ cyl_bessel_k ( /* floating-point-type */ nu,
/* floating-point-type */ x ) ;
(desde C++23)
float cyl_bessel_kf ( float nu, float x ) ;
(2) (desde C++17)
long double cyl_bessel_kl ( long double nu, long double x ) ;
(3) (desde C++17)
Definido en el encabezado <cmath>
template < class Arithmetic1, class Arithmetic2 >

/* common-floating-point-type */

cyl_bessel_k ( Arithmetic1 nu, Arithmetic2 x ) ;
(A) (desde C++17)
1-3) Calcula la función de Bessel cilíndrica modificada irregular (también conocida como función de Bessel modificada de segunda especie) de nu y x . La biblioteca proporciona sobrecargas de std::cyl_bessel_k para todos los tipos de punto flotante sin calificación cv como tipo de los parámetros nu y x . (desde C++23)
A) Se proporcionan sobrecargas adicionales para todas las demás combinaciones de tipos aritméticos.

Contenidos

Parámetros

nu - el orden de la función
x - el argumento de la función

Valor de retorno

If no errors occur, value of the irregular modified cylindrical Bessel function (modified Bessel function of the second kind) of nu and x , is returned, that is K nu (x) =
π
2
I -nu (x)-I nu (x)
sin(νπ)
(where I nu (x) is std:: cyl_bessel_i ( nu, x ) ) for x≥0 and non-integer nu ; for integer nu a limit is used.

Manejo de errores

Los errores pueden ser reportados como se especifica en math_errhandling :

  • Si el argumento es NaN, se devuelve NaN y no se reporta un error de dominio.
  • Si nu≥128 , el comportamiento está definido por la implementación.

Notas

Las implementaciones que no admiten C++17, pero sí admiten ISO 29124:2010 , proporcionan esta función si __STDCPP_MATH_SPEC_FUNCS__ está definido por la implementación con un valor de al menos 201003L y si el usuario define __STDCPP_WANT_MATH_SPEC_FUNCS__ antes de incluir cualquier cabecera de la biblioteca estándar.

Las implementaciones que no admiten ISO 29124:2010 pero sí admiten TR 19768:2007 (TR1), proporcionan esta función en el encabezado tr1/cmath y el espacio de nombres std::tr1 .

Una implementación de esta función también está disponible en boost.math .

Las sobrecargas adicionales no requieren ser proporcionadas exactamente como (A) . Solo necesitan ser suficientes para garantizar que para su primer argumento num1 y segundo argumento num2 :

  • Si num1 o num2 tiene tipo long double , entonces std :: cyl_bessel_k ( num1, num2 ) tiene el mismo efecto que std :: cyl_bessel_k ( static_cast < long double > ( num1 ) ,
    static_cast < long double > ( num2 ) )
    .
  • En caso contrario, si num1 y/o num2 tiene tipo double o un tipo entero, entonces std :: cyl_bessel_k ( num1, num2 ) tiene el mismo efecto que std :: cyl_bessel_k ( static_cast < double > ( num1 ) ,
    static_cast < double > ( num2 ) )
    .
  • En caso contrario, si num1 o num2 tiene tipo float , entonces std :: cyl_bessel_k ( num1, num2 ) tiene el mismo efecto que std :: cyl_bessel_k ( static_cast < float > ( num1 ) ,
    static_cast < float > ( num2 ) )
    .
(hasta C++23)

Si num1 y num2 tienen tipos aritméticos, entonces std :: cyl_bessel_k ( num1, num2 ) tiene el mismo efecto que std :: cyl_bessel_k ( static_cast < /* common-floating-point-type */ > ( num1 ) ,
static_cast < /* common-floating-point-type */ > ( num2 ) )
, donde /* common-floating-point-type */ es el tipo de punto flotante con el mayor rango de conversión de punto flotante y mayor subrango de conversión de punto flotante entre los tipos de num1 y num2 , los argumentos de tipo entero se consideran con el mismo rango de conversión de punto flotante que double .

Si no existe tal tipo de punto flotante con el mayor rango y subrango, entonces la resolución de sobrecarga no resulta en un candidato utilizable de las sobrecargas proporcionadas.

(desde C++23)

Ejemplo

#include <cmath>
#include <iostream>
#include <numbers>
int main()
{
    double pi = std::numbers::pi;
    const double x = 1.2345;
    // verificación puntual para nu == 0.5
    std::cout << "K_.5(" << x << ") = " << std::cyl_bessel_k(.5, x) << '\n'
              << "calculado mediante I = "
              << (pi / 2) * (std::cyl_bessel_i(-.5, x)
                 - std::cyl_bessel_i(.5, x)) / std::sin(.5 * pi) << '\n';
}

Salida:

K_.5(1.2345) = 0.32823
calculated via I = 0.32823

Véase también

funciones de Bessel cilíndricas modificadas regulares
(función)
funciones de Bessel cilíndricas (de primera especie)
(función)

Enlaces externos

Weisstein, Eric W. "Modified Bessel Function of the Second Kind." De MathWorld — Un recurso web de Wolfram.