Namensräume
Varianten
Aktionen

std::sph_neumann, std::sph_neumannf, std::sph_neumannl

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

double      sph_neumann ( unsigned n, double x );

long double sph_neumann ( unsigned n, long double x );
(seit C++17)
(bis C++23)
/* floating-point-type */ sph_neumann( unsigned n,
                                       /* Gleitkommazahl-Typ */ x );
(seit C++23)
float       sph_neumannf( unsigned n, float x );
(2) (seit C++17)
long double sph_neumannl( unsigned n, long double x );
(3) (seit C++17)
Definiert in der Header-Datei <cmath>
template< class Integer >
double      sph_neumann ( unsigned n, Integer x );
(A) (seit C++17)
1-3) Berechnet die sphärische Besselfunktion zweiter Art, auch bekannt als sphärische Neumann-Funktion, für n und x. Die Bibliothek stellt Überladungen von std::sph_neumann für alle cv-unqualifizierten Gleitkommatypen 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

[edit] Parameter

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

[edit] Rückgabewert

Wenn keine Fehler auftreten, gibt den Wert der sphärischen Besselfunktion zweiter Art (sphärische Neumann-Funktion) von n und x zurück, d.h. nn(x) = (π/2x)1/2
Nn+1/2(x)
wobei Nn(x) std::cyl_neumann(n, x) ist und x≥0.

[edit] 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

[edit] 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 als (A) bereitgestellt werden. Sie müssen nur ausreichend sein, um sicherzustellen, dass für ihr Argument num vom Ganzzahltyp, std::sph_neumann(int_num, num) denselben Effekt hat wie std::sph_neumann(int_num, static_cast<double>(num)).

[edit] Beispiel

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

Ausgabe

n_1(1.2345) = -0.981201
-cos(x)/x² - sin(x)/x = -0.981201

[edit] Siehe auch

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

[edit] Externe Links

Weisstein, Eric W. "Spherical Bessel Function of the Second Kind." Von MathWorld – Eine Wolfram-Webressource.