C++ 库 - <cmath>



C++ 中的<cmath> 头文件提供了一组预定义函数,用于计算常见的数学运算和转换。

它提供标准数学函数,例如三角函数、指数函数、对数函数和幂函数,以及可应用于标量和向量量的其他有用函数。

包含 <cmath> 头文件

要在 C++ 程序中包含 <cmath> 头文件,可以使用以下语法。

#include <cmath>

<cmath> 头文件的函数

以下是 <cmath> 头文件中所有函数的列表。

三角函数

这些函数处理标准三角计算,如正弦、余弦和正切。

序号 函数及说明
1 sin(x)

此函数返回角度为 x 弧度的余弦。

2 cos(x)

此函数返回角度为 x 弧度的正弦。

3 tan(x)

此函数返回角度为 x 弧度的正切。

4 acos(x)

此函数返回 x 的反余弦的主值,以弧度表示。

5 asin(x)

此函数返回 x 的反正弦的主值,以弧度表示。

6 atan2(x)

此函数返回 x 的反正切的主值,以弧度表示。

7 atan2(y,x)

此函数返回 y/x 的反正切的主值,以弧度表示。

角度的正弦

在下面的示例中,我们将使用 sin() 计算以弧度表示的角度的正弦。

#include <iostream>
#include <cmath>

int main() {
    double angle = 1.0; // Angle in radians
    double result = sin(angle);
    std::cout << "The sine of " << angle << " radians is " << result << std::endl;
    return 0;
}

输出

The sine of 1 radians is 0.841471

双曲函数

这些函数是三角函数的双曲对应物。

序号 函数及说明
1 cosh(x)

此函数返回 x 的双曲余弦。

2 sinh(x)

此函数返回 x 的双曲正弦。

3 tanh(x)

此函数返回 x 的双曲正切。

4 acosh(x)

此函数返回 x 的非负面积双曲余弦。

5 asinh(x)

此函数返回 x 的双曲余弦。

6 atanh(x)

此函数返回 x 的面积双曲正切。

计算双曲正弦

在下面的示例中,我们将使用 sinh() 计算数字的双曲正弦。

#include <iostream>
#include <cmath>
int main() {
    double value = 1.0;
    double result = sinh(value);
    std::cout << "The hyperbolic sine of " << value << " is " << result << std::endl;
    return 0;
}

输出

The hyperbolic sine of 1 is 1.1752

指数和对数函数

这些函数处理指数和对数计算。

序号 函数及说明
1 exp(x)

此函数返回 x 的以 e 为底的指数函数,即 e 的 x 次幂:e^x。

2 frexp(x)

此函数将浮点数 x 分解为其二进制有效数和 2 的整数指数。

3 log(x)

此函数返回 x 的自然对数。

4 log10(x)

此函数返回 x 的常用(以 10 为底)对数。

5 modf(x)

将 x 分解为整数部分和小数部分。

6 exp2(x)

此函数返回 x 的以 2 为底的指数函数,即 2 的 x 次幂:2^x。

7 ilogb(x)

此函数返回 |x| 的对数的整数部分,使用 RADIX 作为对数的底。

8 log1p(x)

此函数返回 1 加 x 的自然对数。

计算指数值

在下面的示例中,我们将使用 exp() 计算 e^2。计算 e(欧拉数)的给定输入的幂的指数值。

#include <iostream>
#include <cmath>
int main() {
    double exponent = 2.0;
    double result = exp(exponent);
    std::cout << "The value of e^" << exponent << " is " << result << std::endl;
    return 0;
}

输出

The value of e^2 is 7.38906

幂函数

这些函数处理与幂和根相关的计算。

序号 函数及说明
1 pow(x,y)

此函数返回底数的指数次幂。

2 sqrt(x)

此函数返回 x 的平方根。

3 cbrt(x)

此函数返回 x 的立方根。

4 hypot(x,y)

此函数返回直角三角形的斜边,其直角边为 x 和 y。

幂函数示例

在下面的示例中,我们将使用 pow() 函数返回底数的指数次幂的结果。

#include <iostream>
#include <cmath>
int main() {
    double base = 2.0, exponent = 3.0;
    double result = pow(base, exponent);
    std::cout << base << " raised to the power of " << exponent << " is " << result << std::endl;
    return 0;
}

输出

2 raised to the power of 3 is 8

误差和伽马函数

cmath 库包含误差函数 (erf) 和伽马函数 (tgamma) 等特殊函数,这些函数用于统计、物理等各个领域。

序号 函数及说明
1 erf(x)

此函数返回 x 的误差函数值。

2 erfc(x)

此函数返回互补误差函数。

3 tgamma(x)

此函数返回 x 的伽马函数。

4 lgamma(x)

此函数返回 x 的伽马函数的绝对值的自然对数。

舍入和余数函数

这些函数处理舍入和余数计算。

序号 函数及说明
1 ceil(x)

向上舍入 x,返回不小于 x 的最小整数值。

2 floor(x)

向下舍入 x,返回不大于 x 的最大整数值。

3 round(x)

此函数返回最接近 x 的整数值,中间值舍入远离零。

4 trunc(x)

将 x 舍入到零,返回大小不超过 x 的最近整数值。

5 fmod(x, y)

返回 numer/denom (x/y) 的浮点余数,向零舍入。

检索最小的整数

在下面的示例中,我们将使用 ceil(),它向上舍入浮点数,返回大于或等于输入的最小整数。

#include <iostream>
#include <cmath>
int main() {
    double value = 3.45;
    double result = ceil(value);
    std::cout << "The ceiling of " << value << " is " << result << std::endl;
    return 0;
}

输出

The ceiling of 3.45 is 4

浮点操作函数

这些浮点操作函数用于处理浮点数。

序号 函数及说明
1 copysign(x, y)

此函数返回一个值,该值具有 x 的大小和 y 的符号。

2 nan()

此函数返回类型为 double 的静默 NaN(非数字)值。

3 nextafter(x, y)

此函数返回 x 之后朝 y 方向的下一个可表示的值。

4 nexttoward(x, y)

此函数返回 x 之后朝 y 方向的下一个可表示的值。

最小值、最大值、差值函数

这些函数查找两个数字之间的最小值、最大值和绝对差值。

序号 函数及说明
1 fmin(x, y)

此函数返回其参数中的较小者:x 或 y。

2 fmax(x,y)

此函数返回其参数中的较大者:x 或 y。

3 fdim(x, y)

此函数返回 x 和 y 之间的正差。

其他函数

cmath 头文件提供了其他函数,特别是用于处理浮点数。

序号 函数及说明
1 fabs(x)

此函数返回 x 的绝对值:|x|。

2 abs(x)

此函数计算整数或浮点类型的绝对值。

3 fma(x,y,z)

此乘加函数计算 x 和 y 的乘积,然后将 z 加到结果中 (x*y+z)。

广告