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

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

下面是如何在 C 编程中使用辛普森公式求 sin(x) 从 0 到 PI/2 的定积分的示例:

#include <stdio.h>
#include <math.h>

#define PI 3.14159265
#define N 1000

double simpson(double a, double b) {
    double h = (b - a) / (2 * N);
    double sum = 0;
    for (int i = 0; i <= 2 * N; i++) {
        double x = a + i * h;
        if (i == 0 || i == 2 * N) {
            sum += sin(x);
        } else if (i % 2 == 1) {
            sum += 4 * sin(x);
        } else {
            sum += 2 * sin(x);
        }
    }
    return sum * h / 3;
}

int main() {
    double a = 0, b = PI / 2;
    double integral = simpson(a, b);
    printf("The definite integral of sin(x) from %lf to %lf is %lf\n", a, b, integral);
    return 0;
}


下面是如何在 C 编程中使用辛普森公式求 ln(x) 从 0 到 100 的定积分的示例:

#include <stdio.h>
#include <math.h>

#define N 1000

double simpson(double a, double b) {
    double h = (b - a) / (2 * N);
    double sum = 0;
    for (int i = 0; i <= 2 * N; i++) {
        double x = a + i * h;
        if (i == 0 || i == 2 * N) {
            sum += log(x);
        } else if (i % 2 == 1) {
            sum += 4 * log(x);
        } else {
            sum += 2 * log(x);
        }
    }
    return sum * h / 3;
}

int main() {
    double a = 0, b = 100;
    double integral = simpson(a, b);
    printf("The definite integral of ln(x) from %lf to %lf is %lf\n", a, b, integral);
    return 0;
}


回答不易,求求您采纳点赞哦

你可以使用如下的 C 语言参考程序来求解积分:

int main() 
{ 
  double x, y; 
  /* 计算 sinx 在 0 到 100 之间的定积分 */ 
  for(x=0; x<=100; x++){ 
    y += sin(x); 
  } 
  printf("sinx在0到100之间的定积分 = %f\n",y); 
  /* 计算 lnx 在 0 到 100 之间的定积分 */ 
  for(x=0; x<=100; x++){ 
    y += log(x); 
  } 
  printf("lnx在0到100之间的定积分 = %f\n",y); 
  return 0; 
}