std::legendrel
STD::Legendre,STD::Legendre,STD::Legendrel
double legendre( unsigned int n, double x double legendre( unsigned int n, float x double legendre( unsigned int n, long double x float legendref( unsigned int n, float x long double legendrel( unsigned int n, long double x | (1) | (since C++17) |
---|---|---|
double legendre( unsigned int n, Integral x | (2) | (since C++17) |
1%29计算未关联的Legen
dre多项式程度n
和争论x
4%29一组过载或接受任意参数的函数模板积分型将参数转换为double
...
参数
n | - | the degree of the polynomial |
---|---|---|
x | - | the argument, a value of a floating-point or integral type |
返回值
如果没有出现错误,则命令的值-n
无关联勒让德多项式x
,那就是
一
*。
2nn%21
DN
*。
dxn
%28x2
-1%29 N
,被归还。
错误处理
错误可以按数学[医]错误处理...
- 如果参数为nan,则返回nan,并且不报告域错误。
- 对于x>1,不需要定义函数。
- 如果
n
大于或等于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
...
此功能的实现也是可以在中学里找到。...
前几个Legendre多项式是:
- Legendre%280,x%29=1
- Legendre%281,x%29=x
- Legendre%282,x%29=1 2%283 x2
-1%29
- Legendre%283,x%29=1 2%285 x3 -3x%29
- Legendre%284,x%29=1 8%2835x4
-30x2
+3%29
例
二次
#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';
}
二次
产出:
二次
-0.335938=-0.335938
0.157715=0.157715
二次
另见
laguerrelaguerreflaguerrel (C++17)(C++17)(C++17) | Laguerre polynomials (function) |
---|---|
hermitehermitefhermitel (C++17)(C++17)(C++17) | Hermite polynomials (function) |
外部链接
韦斯泰因,埃里克W.“勒让德多项式”来自MathWorld的一个Wolfram Web资源。
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。