Namensräume
Varianten
Aktionen

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

Von cppreference.com
 
 
 
 
double      hermite( unsigned int n, double x );

double      hermite( unsigned int n, float x );
double      hermite( unsigned int n, long double x );
float       hermitef( unsigned int n, float x );

long double hermitel( unsigned int n, long double x );
(1)
double      hermite( unsigned int n, IntegralType x );
(2)
1) Berechnet die (physikalischen) Hermite-Polynome vom Grad n und Argument x.
2) Eine Menge von Überladungen oder eine Funktionsschablone, die ein Argument eines beliebigen Ganzzahltyps akzeptiert. Entspricht (1) nach Umwandlung des Arguments in double.

Wie alle speziellen Funktionen ist hermite nur dann garantiert in <cmath> verfügbar, wenn __STDCPP_MATH_SPEC_FUNCS__ von der Implementierung auf einen Wert von mindestens 201003L definiert ist und wenn der Benutzer __STDCPP_WANT_MATH_SPEC_FUNCS__ definiert, bevor er irgendwelche Standardbibliotheksheader einschließt.

Inhalt

[bearbeiten] Parameter

n - der Grad des Polynoms
x - das Argument, ein Wert vom Fließkomma- oder Ganzzahltyp

[bearbeiten] Rückgabewert

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

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

[bearbeiten] Hinweise

Implementierungen, die TR 29124 nicht unterstützen, aber TR 19768 unterstützen, stellen diese Funktion im Header tr1/cmath und im Namensraum 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

  • hermite(0, x) = 1.
  • hermite(1, x) = 2x.
  • hermite(2, x) = 4x2
    - 2
    .
  • hermite(3, x) = 8x3
    - 12x
    .
  • hermite(4, x) = 16x4
    - 48x2
    + 12
    .

[bearbeiten] Beispiel

(funktioniert wie gezeigt mit gcc 6.0)

#define __STDCPP_WANT_MATH_SPEC_FUNCS__ 1
#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

[bearbeiten] Siehe auch

Laguerre-Polynome
(Funktion) [bearbeiten]
Legendre-Polynome
(Funktion) [bearbeiten]

[bearbeiten] Externe Links

Weisstein, Eric W. ""Hermite Polynomial." Aus MathWorld--A Wolfram Web Resource.