std::legendre, std::legendref, std::legendrel
| double legendre( unsigned int n, double x ); double legendre( unsigned int n, float x ); |
(1) | |
| double legendre( unsigned int n, IntegralType x ); |
(2) | |
Wie alle Spezialfunktionen ist legendre 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 irgendeine Standardbibliothek-Header-Datei 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 unassoziativierten Legendre-Polynoms der Ordnungn von x zurückgegeben, d.h. | 1 |
| 2n n! |
| dn |
| dxn |
- 1)n
.
[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.
- Die Funktion muss nicht für |x| > 1 definiert sein.
- 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 ersten wenigen Legendre-Polynome sind:
- legendre(0, x) = 1.
- legendre(1, x) = x.
- legendre(2, x) =
(3x21 2
- 1). - legendre(3, x) =
(5x31 2
- 3x). - legendre(4, x) =
(35x41 8
- 30x2
+ 3).
[bearbeiten] Beispiel
(funktioniert wie gezeigt mit gcc 6.0)
#define __STDCPP_WANT_MATH_SPEC_FUNCS__ 1 #include <cmath> #include <iostream> double P3(double x) { return 0.5 * (5 * std::pow(x, 3) - 3 * x); } double P4(double x) { return 0.125 * (35 * std::pow(x, 4) - 30 * x * x + 3); } int main() { // spot-checks std::cout << std::legendre(3, 0.25) << '=' << P3(0.25) << '\n' << std::legendre(4, 0.25) << '=' << P4(0.25) << '\n'; }
Ausgabe
-0.335938=-0.335938 0.157715=0.157715
[bearbeiten] Siehe auch
| Laguerre-Polynome (Funktion) | |
| Hermite-Polynome (Funktion) |
[bearbeiten] Externe Links
| Weisstein, Eric W. "Legendre Polynomial." From MathWorld — A Wolfram Web Resource. |