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;
}