Namespaces
Variants

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

From cppreference.net
Défini dans l'en-tête <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 ) ;
(depuis C++17)
(jusqu'à C++23)
/* floating-point-type */ cyl_bessel_k ( /* floating-point-type */ nu,
/* floating-point-type */ x ) ;
(depuis C++23)
float cyl_bessel_kf ( float nu, float x ) ;
(2) (depuis C++17)
long double cyl_bessel_kl ( long double nu, long double x ) ;
(3) (depuis C++17)
Défini dans l'en-tête <cmath>
template < class Arithmetic1, class Arithmetic2 >

/* common-floating-point-type */

cyl_bessel_k ( Arithmetic1 nu, Arithmetic2 x ) ;
(A) (depuis C++17)
1-3) Calcule la fonction de Bessel modifiée cylindrique irrégulière (également connue sous le nom de fonction de Bessel modifiée de seconde espèce) de nu et x . La bibliothèque fournit des surcharges de std::cyl_bessel_k pour tous les types à virgule flottante non qualifiés cv comme type des paramètres nu et x . (depuis C++23)
A) Des surcharges supplémentaires sont fournies pour toutes les autres combinaisons de types arithmétiques.

Table des matières

Paramètres

nu - l'ordre de la fonction
x - l'argument de la fonction

Valeur de retour

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.

Gestion des erreurs

Les erreurs peuvent être signalées comme spécifié dans math_errhandling :

  • Si l'argument est NaN, NaN est retourné et aucune erreur de domaine n'est signalée.
  • Si nu≥128 , le comportement est défini par l'implémentation.

Notes

Les implémentations qui ne prennent pas en charge C++17, mais qui prennent en charge ISO 29124:2010 , fournissent cette fonction si __STDCPP_MATH_SPEC_FUNCS__ est défini par l'implémentation à une valeur d'au moins 201003L et si l'utilisateur définit __STDCPP_WANT_MATH_SPEC_FUNCS__ avant d'inclure tout en-tête de la bibliothèque standard.

Les implémentations qui ne prennent pas en charge ISO 29124:2010 mais supportent TR 19768:2007 (TR1), fournissent cette fonction dans l'en-tête tr1/cmath et l'espace de noms std::tr1 .

Une implémentation de cette fonction est également disponible dans boost.math .

Les surcharges supplémentaires ne sont pas tenues d'être fournies exactement comme (A) . Elles doivent seulement être suffisantes pour garantir que pour leur premier argument num1 et second argument num2 :

  • Si num1 ou num2 a le type long double , alors std :: cyl_bessel_k ( num1, num2 ) a le même effet que std :: cyl_bessel_k ( static_cast < long double > ( num1 ) ,
    static_cast < long double > ( num2 ) )
    .
  • Sinon, si num1 et/ou num2 a le type double ou un type entier, alors std :: cyl_bessel_k ( num1, num2 ) a le même effet que std :: cyl_bessel_k ( static_cast < double > ( num1 ) ,
    static_cast < double > ( num2 ) )
    .
  • Sinon, si num1 ou num2 a le type float , alors std :: cyl_bessel_k ( num1, num2 ) a le même effet que std :: cyl_bessel_k ( static_cast < float > ( num1 ) ,
    static_cast < float > ( num2 ) )
    .
(jusqu'en C++23)

Si num1 et num2 ont des types arithmétiques, alors std :: cyl_bessel_k ( num1, num2 ) a le même effet que std :: cyl_bessel_k ( static_cast < /* common-floating-point-type */ > ( num1 ) ,
static_cast < /* common-floating-point-type */ > ( num2 ) )
, où /* common-floating-point-type */ est le type à virgule flottante ayant le plus haut rang de conversion en virgule flottante et la plus haute sous-catégorie de conversion en virgule flottante entre les types de num1 et num2 , les arguments de type entier sont considérés comme ayant le même rang de conversion en virgule flottante que double .

Si aucun tel type à virgule flottante avec le rang et la sous-catégorie les plus élevés n'existe, alors la résolution de surcharge ne produit aucun candidat utilisable parmi les surcharges fournies.

(depuis C++23)

Exemple

#include <cmath>
#include <iostream>
#include <numbers>
int main()
{
    double pi = std::numbers::pi;
    const double x = 1.2345;
    // vérification ponctuelle pour nu == 0.5
    std::cout << "K_.5(" << x << ") = " << std::cyl_bessel_k(.5, x) << '\n'
              << "calculé via I = "
              << (pi / 2) * (std::cyl_bessel_i(-.5, x)
                 - std::cyl_bessel_i(.5, x)) / std::sin(.5 * pi) << '\n';
}

Sortie :

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

Voir aussi

fonctions de Bessel cylindriques modifiées régulières
(fonction)
fonctions de Bessel cylindriques (de première espèce)
(fonction)

Liens externes

Weisstein, Eric W. "Modified Bessel Function of the Second Kind." De MathWorld — Une ressource web Wolfram.