std::comp_ellint_1f
STD::COMP[医]艾林[医]1,STD::COMP[医]艾林[医]1F,STD::COMP[医]艾林[医]1L
double comp_ellint_1( double k double comp_ellint_1( float k double comp_ellint_1( long double k float comp_ellint_1f( float k long double comp_ellint_1l( long double k | (1) | (since C++17) |
---|---|---|
double comp_ellint_1( Integral k | (2) | (since C++17) |
1%29计算第一类完全椭圆积分成k
...
4%29一组过载或接受任意参数的函数模板积分型将参数转换为double
...
参数
k | - | elliptic modulus or eccentricity (a value of a floating-point or integral type) |
---|
返回值
如果没有错误发生,则第一类完全椭圆积分的值k
,那就是ellint_1(k,π/2)
,被归还。
错误处理
错误可以按数学[医]错误处理...
- 如果参数为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
...
此功能的实现也是可以在中学里找到。...
大摆周期%28网址:http://en.wikipara.com/wiki/Pendulum_%28数学%29在重力g的加速度下,长度为l的%29,初始角θ=4Ⅹl/gk%28sin2
%28θ/2%29%29,其中K为std::comp_ellint_1
...
例
二次
#include <cmath>
#include <iostream>
int main()
{
double hpi = std::acos(-1)/2;
std::cout << "K(0) = " << std::comp_ellint_1(0) << '\n'
<< "π/2 = " << hpi << '\n'
<< "K(0.5) = " << std::comp_ellint_1(0.5) << '\n'
<< "F(0.5, π/2) = " << std::ellint_1(0.5, hpi) << '\n';
std::cout << "Period of a pendulum length 1 m at 90 degree initial angle is "
<< 4*std::sqrt(1/9.80665)*
std::comp_ellint_1(std::pow(std::sin(hpi/2),2)) << " s\n";
}
二次
产出:
二次
K(0) = 1.5708
π/2 = 1.5708
K(0.5) = 1.68575
F(0.5, π/2) = 1.68575
Period of a pendulum length 1 m at 90 degree initial angle is 2.15324 s
二次
外部链接
第一类椭圆积分。来自MathWorld的一个Wolfram Web资源。
另见
ellint_1ellint_1fellint_1l (C++17)(C++17)(C++17) | (incomplete) elliptic integral of the first kind (function) |
---|
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。