std:: sph_legendre, std:: sph_legendref, std:: sph_legendrel
|
Definiert im Header
<cmath>
|
||
| (1) | ||
|
float
sph_legendre
(
unsigned
l,
unsigned
m,
float
theta
)
;
double
sph_legendre
(
unsigned
l,
unsigned
m,
double
theta
)
;
|
(seit C++17)
(bis C++23) |
|
|
/* floating-point-type */
sph_legendre
(
unsigned
l,
unsigned
m,
/* floating-point-type */ theta ) ; |
(seit C++23) | |
|
float
sph_legendref
(
unsigned
l,
unsigned
m,
float
theta
)
;
|
(2) | (seit C++17) |
|
long
double
sph_legendrel
(
unsigned
l,
unsigned
m,
long
double
theta
)
;
|
(3) | (seit C++17) |
|
Definiert im Header
<cmath>
|
||
|
template
<
class
Integer
>
double sph_legendre ( unsigned l, unsigned m, Integer theta ) ; |
(A) | (seit C++17) |
std::sph_legendre
für alle cv-unqualifizierten Gleitkommatypen als Typ des Parameters
theta
bereit.
(seit C++23)
Inhaltsverzeichnis |
Parameter
| l | - | Grad |
| m | - | Ordnung |
| theta | - | Polarwinkel, gemessen in Radiant |
Rückgabewert
If no errors occur, returns the value of the spherical associated Legendre function (that is, spherical harmonic with ϕ = 0) of l , m , and theta , where the spherical harmonic function is defined as Y ml (θ,φ) = (-1) m
[
| (2l+1)(l-m)! |
| 4π(l+m)! |
P m
l (cos(θ))e imφ
where P m
l (x) is std:: assoc_legendre ( l, m, x ) ) and |m|≤l .
Beachten Sie, dass der
Condon-Shortley-Phasenterm
(-1)
m
in dieser Definition enthalten ist, da er in der Definition von
P
m
l
in
std::assoc_legendre
weggelassen wird.
Fehlerbehandlung
Fehler können gemäß den Angaben in math_errhandling gemeldet werden.
- Wenn das Argument NaN ist, wird NaN zurückgegeben und kein Domänenfehler gemeldet.
- Wenn l≥128 , ist das Verhalten implementierungsdefiniert.
Hinweise
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 Standardbibliotheksheader einbindet.
Implementierungen, die ISO 29124:2010 nicht unterstützen, aber TR 19768:2007 (TR1) unterstützen, stellen diese Funktion im Header
tr1/cmath
und im Namespace
std::tr1
bereit.
Eine Implementierung der sphärischen Harmonischen Funktion ist verfügbar in boost.math , und sie reduziert sich auf diese Funktion, wenn sie mit dem Parameter phi gleich null aufgerufen wird.
Die zusätzlichen Überladungen müssen nicht exakt wie (A) bereitgestellt werden. Sie müssen lediglich sicherstellen, dass für ihr Argument num vom Ganzzahltyp std :: sph_legendre ( int_num1, int_num2, num ) dieselbe Wirkung hat wie std :: sph_legendre ( int_num1, int_num2, static_cast < double > ( num ) ) .
Beispiel
#include <cmath> #include <iostream> #include <numbers> int main() { // Stichprobe für l=3, m=0 double x = 1.2345; std::cout << "Y_3^0(" << x << ") = " << std::sph_legendre(3, 0, x) << '\n'; // exakte Lösung std::cout << "exact solution = " << 0.25 * std::sqrt(7 / std::numbers::pi) * (5 * std::pow(std::cos(x), 3) - 3 * std::cos(x)) << '\n'; }
Ausgabe:
Y_3^0(1.2345) = -0.302387 exact solution = -0.302387
Siehe auch
|
(C++17)
(C++17)
(C++17)
|
Assoziierte Legendre-Polynome
(Funktion) |
Externe Links
| Weisstein, Eric W. "Spherical Harmonic." Von MathWorld — Eine Wolfram Web-Ressource. |