std::sph_legendref
STD::sph[医]Legendre,STD::sph[医]传说,STD::sph[医]传奇
double sph_legendre ( unsigned l, unsigned m, double θ double sph_legendre ( unsigned l, unsigned m, float θ double sph_legendre ( unsigned l, unsigned m, long double θ float sph_legendref( unsigned l, unsigned m, float θ long double sph_legendrel( unsigned l, unsigned m, long double θ | (1) | (since C++17) |
---|---|---|
double sph_legendre ( unsigned l, unsigned m, Integral θ | (2) | (since C++17) |
1%29计算度的球面相关勒让德函数l
,秩序m
,和极角θ
...
2%29一组过载或接受任意参数的函数模板积分型将参数转换为double
...
参数
l | - | degree |
---|---|---|
m | - | order |
θ | - | polar angle, measured in radians |
返回值
如果不发生错误,则返回球面相关勒让德函数%28的值,即球面调和,其值=0%29l
,,,m
,和θ
,其中球面调和函数定义为ym
。
l%28θ,%29=%28-1%29m
[
%282 l+1%29%28 L-m%29%21
*。
4π%28L+m%29%21
]1/2
下午
L%28 cosθ%29 eim
下午何处
l%28x%29是std::assoc_legendre
(l,m,x)
%29,m≤l
注意,康顿-肖特利相项%28-1%2900万
在此定义中包含,因为它在pm的定义中被省略。
我在std::assoc_legendre
...
错误处理
错误可以按数学[医]错误处理...
- 如果参数为nan,则返回nan,并且不报告域错误。
- 如果l≥128,则行为是实现定义的。
注记
不支持C++17但支持的实现ISO 29124:2010,则提供此功能__STDCPP_MATH_SPEC_FUNCS__
由实现定义为值至少为201003L,且用户定义__STDCPP_WANT_MATH_SPEC_FUNCS__
在包含任何标准库头之前。
不支持iso 29124:2010但支持tr 19768:2007%28TR1%29的实现,在标头中提供此功能。tr1/cmath
和命名空间std::tr1
...
球面调和函数的一个实现可以在中学里找到。,并且当参数Phi设置为零时,它将降为此函数。
例
二次
#include <cmath>
#include <iostream>
int main()
{
// spot check for l=3, m=0
double x = 1.2345;
std::cout << "Y_3^0(" << x << ") = " << std::sph_legendre(3, 0, x) << '\n';
// exact solution
double pi = std::acos(-1
std::cout << "exact solution = "
<< 0.25*std::sqrt(7/pi)*(5*std::pow(std::cos(x),3)-3*std::cos(x))
<< '\n';
}
二次
产出:
二次
Y_3^0(1.2345) = -0.302387
exact solution = -0.302387
二次
外部链接
韦斯斯坦,埃里克W.“球面谐波”来自MathWorld的一个Wolfram Web资源。
另见
assoc_legendreassoc_legendrefassoc_legendrel (C++17)(C++17)(C++17) | associated Legendre polynomials (function) |
---|
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。