Namensräume
Varianten
Aktionen

std::laguerre, std::laguerref, std::laguerrel

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

double      laguerre( unsigned int n, float x );
double      laguerre( unsigned int n, long double x );
float       laguerref( unsigned int n, float x );

long double laguerrel( unsigned int n, long double x );
(1)
double      laguerre( unsigned int n, IntegralType x );
(2)
1) Berechnet die nicht-assoziierten Laguerre-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 Spezialfunktionen ist laguerre nur dann in <cmath> garantiert 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 irgendeine Standardbibliotheks-Header-Datei einbindet.

Inhalt

[bearbeiten] Parameter

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

[bearbeiten] Rückgabewert

Wenn keine Fehler auftreten, wird der Wert des nicht-assoziierten Laguerre-Polynoms von x, d.h.
ex
n!
dn
dxn
(xn
e-x)
, zurückgegeben.

[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 x negativ ist, kann ein Domänenfehler auftreten.
  • Wenn n größer oder gleich 128 ist, ist das Verhalten implementierungsabhängig.

[bearbeiten] Anmerkungen

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 Laguerre-Polynome sind die Polynom-Lösungen der Gleichung xy,,
+ (1 - x)y,
+ ny = 0
.

Die ersten paar sind

  • laguerre(0, x) = 1.
  • laguerre(1, x) = -x + 1.
  • laguerre(2, x) =
    1
    2
    [x2
    - 4x + 2]
    .
  • laguerre(3, x) =
    1
    6
    [-x3
    - 9x2
    - 18x + 6]
    .

[bearbeiten] Beispiel

(funktioniert wie gezeigt mit gcc 6.0)

#define __STDCPP_WANT_MATH_SPEC_FUNCS__ 1
#include <cmath>
#include <iostream>
 
double L1(double x)
{
    return -x + 1;
}
 
double L2(double x)
{
    return 0.5 * (x * x - 4 * x + 2);
}
 
int main()
{
    // spot-checks
    std::cout << std::laguerre(1, 0.5) << '=' << L1(0.5) << '\n'
              << std::laguerre(2, 0.5) << '=' << L2(0.5) << '\n';
}

Ausgabe

0.5=0.5
0.125=0.125

[bearbeiten] Siehe auch

assoziierte Laguerre-Polynome
(Funktion) [bearbeiten]

[bearbeiten] Externe Links

Weisstein, Eric W. "Laguerre Polynomial." From MathWorld--A Wolfram Web Resource.