std::laguerre, std::laguerref, std::laguerrel
| double laguerre( unsigned int n, double x ); double laguerre( unsigned int n, float x ); |
(1) | |
| double laguerre( unsigned int n, IntegralType x ); |
(2) | |
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 vonx, 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)
Führen Sie diesen Code aus
#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] Externe Links
Weisstein, Eric W. "Laguerre Polynomial." From MathWorld--A Wolfram Web Resource.