自学内容网 自学内容网

【C语言教程】【常用类库】(四)数学函数库 - <math.h>

4. 数学函数库 - <math.h>

4.1 基础数学函数

在C语言中,要进行数学计算,需要使用<math.h>库,该库提供了一系列常用的数学函数。

4.1.1 三角函数:sin, cos, tan

这些函数用于计算给定角度(以弧度为单位)的正弦、余弦和正切值。

  • sin(double x):

    • 作用:返回角度 x 的正弦值。
    • 示例sin(M_PI / 2) 返回 1.0
  • cos(double x):

    • 作用:返回角度 x 的余弦值。
    • 示例cos(0) 返回 1.0
  • tan(double x):

    • 作用:返回角度 x 的正切值。
    • 示例tan(M_PI / 4) 返回 1.0
#include <stdio.h>
#include <math.h>

int main() {
    double radians = M_PI / 4;
    printf("sin(π/4) = %f\n", sin(radians));
    printf("cos(π/4) = %f\n", cos(radians));
    printf("tan(π/4) = %f\n", tan(radians));
    return 0;
}
4.1.2 幂函数和对数函数:pow, exp, log

这些函数用于指数、对数运算。

  • pow(double base, double exponent):

    • 作用:计算 baseexponent 次方。
    • 示例pow(2, 3) 返回 8.0
  • exp(double x):

    • 作用:计算 e 的 x 次方(自然指数函数)。
    • 示例exp(1) 返回近似 2.71828
  • log(double x):

    • 作用:返回 x 的自然对数。
    • 示例log(exp(1)) 返回 1.0
#include <stdio.h>
#include <math.h>

int main() {
    printf("pow(2, 3) = %f\n", pow(2.0, 3.0));
    printf("exp(1) = %f\n", exp(1));
    printf("log(e) = %f\n", log(exp(1)));
    return 0;
}
4.1.3 其它基础函数:sqrt, fabs
  • sqrt(double x):

    • 作用:计算 x 的平方根。
    • 示例sqrt(9) 返回 3.0
  • fabs(double x):

    • 作用:返回 x 的绝对值。
    • 示例fabs(-5.5) 返回 5.5
#include <stdio.h>
#include <math.h>

int main() {
    printf("sqrt(9) = %f\n", sqrt(9));
    printf("fabs(-5.5) = %f\n", fabs(-5.5));
    return 0;
}
4.2 高级数学函数
4.2.1 双曲函数:sinh, cosh, tanh

这些函数用于计算双曲正弦、双曲余弦和双曲正切,其使用方法与普通三角函数类似。

  • sinh(double x):

    • 作用:计算 x 的双曲正弦。
  • cosh(double x):

    • 作用:计算 x 的双曲余弦。
  • tanh(double x):

    • 作用:计算 x 的双曲正切。
#include <stdio.h>
#include <math.h>

int main() {
    double value = 1.0;
    printf("sinh(1) = %f\n", sinh(value));
    printf("cosh(1) = %f\n", cosh(value));
    printf("tanh(1) = %f\n", tanh(value));
    return 0;
}
4.2.2 圆周率常量:M_PI

在一些编译环境中,<math.h> 定义 M_PI 常量表示圆周率(π)。 使用它可以提高代码的可读性和准确性。

  • 示例——使用常量 M_PI
    #include <stdio.h>
    #include <math.h>
    
    int main() {
        printf("π ≈ %f\n", M_PI);
        return 0;
    }
    
4.3 数值分析与误差控制
4.3.1 误差累积问题及解决办法

在数值计算中,浮点运算的不精确可能导致误差累积。应关注以下几个方面:

  • 浮点精度:使用双精度浮点数(double)替代单精度(float)来减少误差。
  • 算法选择:选择稳定的数值算法,避免产生较大误差。
4.3.2 常见数值分析函数及应用
  • 在数值分析中,常用到线性代数计算,数值积分和微分,可以结合C语言中的数学函数库实现金融和工程中的计算。
#include <stdio.h>
#include <math.h>

int main() {
    double x = 0.1;
    for(int i = 0; i < 10; i++) {
        x += 0.1;
        printf("x = %.17f\n", x);
    }
    return 0;
}

通过使用这些数学函数,可以广泛地应用于工程计算、科学研究,以及其它需要复杂数学运算的场合。


原文地址:https://blog.csdn.net/fjw12998/article/details/142885408

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!