Namensräume
Varianten
Aktionen

std::sph_bessel, std::sph_besself, std::sph_bessell

Von cppreference.com
 
 
 
 
Definiert in der Header-Datei <cmath>
(1)
float       sph_bessel ( unsigned int n, float x );

double      sph_bessel ( unsigned int n, double x );

long double sph_bessel ( unsigned int n, long double x );
(seit C++17)
(bis C++23)
/*Gleitkommazahl-Typ*/ sph_bessel( unsigned int n,
                                      /*Gleitkommazahl-Typ*/ x );
(seit C++23)
float       sph_besself( unsigned int n, float x );
(2) (seit C++17)
long double sph_bessell( unsigned int n, long double x );
(3) (seit C++17)
Definiert in der Header-Datei <cmath>
template< class Integer >
double      sph_bessel ( unsigned int n, Integer x );
(A) (seit C++17)
1-3) Berechnet die Kugel-Bessel-Funktion erster Art von n und x. Die Bibliothek stellt Überladungen von std::sph_bessel für alle cv-unqualifizierten Gleitkommazahltypen als Typ des Parameters x bereit.(seit C++23)
A) Zusätzliche Überladungen werden für alle ganzzahligen Typen bereitgestellt, die als double behandelt werden.

Inhalt

[bearbeiten] Parameter

n - die Ordnung der Funktion
x - das Argument der Funktion

[bearbeiten] Rückgabewert

Wenn keine Fehler auftreten, gibt den Wert der Kugel-Bessel-Funktion erster Art von n und x zurück, d. h. jn(x) = (π/2x)1/2
Jn+1/2(x)
wobei Jn(x) std::cyl_bessel_j(n, x) ist und x≥0.

[bearbeiten] Fehlerbehandlung

Fehler können wie in math_errhandling angegeben gemeldet werden.

  • Wenn das Argument NaN ist, wird NaN zurückgegeben und kein Domänenfehler gemeldet.
  • Wenn n≥128, ist das Verhalten implementierungsabhängig.

[bearbeiten] Hinweise

Implementierungen, die C++17 nicht unterstützen, aber ISO 29124:2010 unterstützen, stellen diese Funktion bereit, wenn __STDCPP_MATH_SPEC_FUNCS__ von der Implementierung auf einen Wert von mindestens 201003L definiert wird und wenn der Benutzer __STDCPP_WANT_MATH_SPEC_FUNCS__ definiert, bevor er beliebige Standardbibliotheks-Header einschließt.

Implementierungen, die ISO 29124:2010 nicht unterstützen, aber TR 19768:2007 (TR1) unterstützen, stellen diese Funktion im Header tr1/cmath im Namespace std::tr1 bereit.

Eine Implementierung dieser Funktion ist auch in boost.math verfügbar.

Die zusätzlichen Überladungen müssen nicht exakt wie (A) bereitgestellt werden. Sie müssen nur ausreichen, um sicherzustellen, dass für ihr Argument num vom ganzzahligen Typ, std::sph_bessel(int_num, num) denselben Effekt hat wie std::sph_bessel(int_num, static_cast<double>(num)).

[bearbeiten] Beispiel

#include <cmath>
#include <iostream>
 
int main()
{
    // spot check for n == 1
    double x = 1.2345;
    std::cout << "j_1(" << x << ") = " << std::sph_bessel(1, x) << '\n';
 
    // exact solution for j_1
    std::cout << "sin(x)/x² - cos(x)/x = "
              << std::sin(x) / (x * x) - std::cos(x) / x << '\n';
}

Ausgabe

j_1(1.2345) = 0.352106
sin(x)/x² - cos(x)/x = 0.352106

[bearbeiten] Siehe auch

zylindrische Besselfunktionen (erster Art)
(Funktion) [bearbeiten]
sphärische Neumann-Funktionen
(Funktion) [bearbeiten]

[bearbeiten] Externe Links

Weisstein, Eric W. "Spherical Bessel Function of the First Kind." Aus MathWorld – Eine Wolfram Web Ressource.