2301_76329312 2023-02-05 23:16 采纳率: 33.3%
浏览 76
已结题

c语言编程定积分lnx,C语言用辛普森公式求lnx在0到100上的定积分的源程序

c语言编程定积分lnx,C语言用辛普森公式求lnx在0到100上的定积分的源程序

  • 写回答

2条回答 默认 最新

  • 社区专家-Monster-XH 2023-02-05 23:35
    关注

    有用点击右侧采纳即可!
    代码如下:

    #include <math.h>
    #include <stdio.h>
    
    double simpson(double (*f)(double), double a, double b, int n) {
        double h = (b - a) / (2 * n);
        double sum = f(a) + f(b);
        for (int i = 1; i <= n; i++) {
            double x = a + 2 * i * h;
            sum += 2 * f(x);
        }
        for (int i = 1; i < n; i++) {
            double x = a + (2 * i - 1) * h;
            sum += 4 * f(x);
        }
        return sum * h / 3;
    }
    
    double ln(double x) {
        return log(x);
    }
    
    double sinx(double x) {
        return sin(x);
    }
    
    int main() {
        int n = 10000;
        double a = 0, b = 100;
        double result = simpson(ln, a, b, n);
        printf("lnx在0到100上的定积分的近似值为: %.15lf\n", result);
        result = simpson(sinx, a, b, n);
        printf("sinx在0到100上的定积分的近似值为: %.15lf\n", result);
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月13日
  • 已采纳回答 2月5日
  • 修改了问题 2月5日
  • 创建了问题 2月5日