Namensräume
Varianten
Aktionen

std::hermite, std::hermitef, std::hermitel

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

float       hermite ( unsigned int n, float x );

long double hermite ( unsigned int n, long double x );
(seit C++17)
(bis C++23)
/* Gleitkommazahl-Typ */ hermite( unsigned int n,
                                   /* Gleitkommazahl-Typ */ x );
(seit C++23)
float       hermitef( unsigned int n, float x );
(2) (seit C++17)
long double hermitel( unsigned int n, long double x );
(3) (seit C++17)
Definiert in der Header-Datei <cmath>
template< class Integer >
double      hermite ( unsigned int n, Integer x );
(A) (seit C++17)
1-3) Berechnet die (physikalischen) Hermite-Polynome vom Grad n und dem Argument x. Die Bibliothek stellt Überladungen von std::hermite 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 - der Grad des Polynoms
x - das Argument, ein Gleitkomma- oder Ganzzahlwert

[edit] Rückgabewert

Wenn keine Fehler auftreten, wird der Wert des Hermite-Polynoms der Ordnung n von x, d. h. (-1)n
ex2
dn
dxn
e-x2
, zurückgegeben.

[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 größer oder gleich 128 ist, ist das Verhalten implementierungsabhängig.

[edit] Anmerkungen

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 Hermite-Polynome sind die Polynomlösungen der Gleichung u,,
-2xu,
= -2nu
.

Die ersten paar sind

Function Polynom
    hermite(0, x)     1
hermite(1, x) 2x
hermite(2, x) 4x2
- 2
hermite(3, x) 8x3
- 12x
hermite(4, x)     16x4
- 48x2
+ 12
    

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

[edit] Beispiel

#include <cmath>
#include <iostream>
 
double H3(double x)
{
    return 8 * std::pow(x, 3) - 12 * x;
}
 
double H4(double x)
{
    return 16 * std::pow(x, 4) - 48 * x * x + 12;
}
 
int main()
{
    // spot-checks
    std::cout << std::hermite(3, 10) << '=' << H3(10) << '\n'
              << std::hermite(4, 10) << '=' << H4(10) << '\n';
}

Ausgabe

7880=7880
155212=155212

[edit] Siehe auch

(C++17)(C++17)(C++17)
Laguerre-Polynome
(Funktion) [bearbeiten]
(C++17)(C++17)(C++17)
Legendre-Polynome
(Funktion) [bearbeiten]

[edit] Externe Links

Weisstein, Eric W. "Hermite Polynomial." Von MathWorld – Eine Wolfram-Webressource.