std::ellint_2
STD:ELINT[医]2,STD::ellint[医]2F,STD::ellint[医]2L
double ellint_2( double k, double φ float ellint_2f( float k, float φ long double ellint_2l( long double k, long double φ | (1) | (since C++17) |
---|---|---|
Promoted ellint_2( Arithmetic k, Arithmetic φ | (2) | (since C++17) |
1%29计算第二类不完全椭圆积分成k
和φ
...
2%29一组重载或函数模板,用于%281%29中未涵盖的所有算术类型的参数组合。如果有任何争论积分型,它被铸造成double
.如果有任何争论long double
,则返回类型Promoted
也是long double
,否则返回类型总是double
...
参数
k | - | elliptic modulus or eccentricity (a value of a floating-point or integral type) |
---|---|---|
φ | - | Jacobi amplitude (a value of floating-point or integral type, measured in radians) |
返回值
如果没有错误发生,则第二类不完全椭圆积分的值k
和φ
,那就是整φ
。
0-I 1-K2
辛2
θdθ,返回。
错误处理
错误可以按数学[医]错误处理...
- 如果参数为nan,则返回nan,并且不报告域错误。
- 如果k>1时,可能会发生域错误。
注记
不支持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
...
此功能的实现也是可以在中学里找到。...
例
二次
#include <cmath>
#include <iostream>
int main()
{
double hpi = std::acos(-1)/2;
std::cout << "E(0,π/2) = " << std::ellint_2(0, hpi) << '\n'
<< "E(0,-π/2) = " << std::ellint_2(0, -hpi) << '\n'
<< "π/2 = " << hpi << '\n'
<< "E(0.7,0) = " << std::ellint_2(0.7, 0) << '\n'
<< "E(1,π/2) = " << std::ellint_2(1, hpi) << '\n';
}
二次
产出:
二次
F(0,π/2) = 1.5708
F(0,-π/2) = -1.5708
π/2 = 1.5708
F(0.7,0) = 0
E(1,π/2) = 1
二次
外部链接
第二类椭圆积分。来自MathWorld的一个Wolfram Web资源。
另见
comp_ellint_2comp_ellint_2fcomp_ellint_2l (C++17)(C++17)(C++17) | (complete) elliptic integral of the second kind (function) |
---|
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。