C语言笔记——用梯形法求定积分
程序员文章站
2024-02-02 21:52:52
...
为求出总面积,先将区间【a, b】分成n小块,每一块的图形近似于一个小梯形。用梯形面积代替该小块图形的面积,然后进行累计,就能够得到曲线图形的近似面积。
#include <stdio.h>
#include <math.h>
#define MAXN 30
double fun1(double x);
double fun2(double x);
double fun3(double x);
double Definite_integral(double a, double b, double (*p)(double x));
main()
{
double a, b;
scanf("%lf %lf",&a,&b);
printf("%lf\n",Definite_integral(a,b,fun2));
}
/* 梯形法求定积分*/
double Definite_integral(double a, double b, double (*p)(double x)){
int i , n = MAXN;
double x, y1, y2, deta, f;
deta = (b-a)/n;
x = a;
y1 = (*p)(x);
f = 0;
for(i = 0;i < n;i++){
x += deta;
y2 = (*p)(x);
f += (y1+y2)*deta/2;
y1 = y2;
}
return f;
}
/*定义被积函数,三种供选择*/
double fun1(double x){
double fx;
fx = x;
return fx;
}
double fun2(double x){
double fx;
fx = x*x*x+x*x+x+1;
return fx;
}
double fun3(double x){
double fx;
fx = sin(x);
return fx;
}
上一篇: Python入门必看
推荐阅读
-
C语言编程练习 5.按如下函数原型,采用梯形法编程实现(分成100个小梯形,再求这100个梯形面积的和),在积分区间[a,b]内计算函数
-
C语言笔记—用梯形法求定积分
-
C语言笔记——用梯形法求定积分
-
C语言:用迭代法求x=sqrt(a)
-
用c语言编写如下程序:二分法求方程f(x)=x^2-x-1=0在区间[1,2]的正根,精确到1e-3?
-
(C语言)用二分法求方程 2x^3 - 4x^2 + 3x - 6 = 0在(-10, 10)之间的根
-
(C语言)用迭代法求x=根号a,要求前后两次求出来的x的差的绝对值小于10^-5
-
梯形法求数值定积分。如F(x)=∫ (4-X*X)^0.5dx。[a,b] c语言+注释
-
用牛顿迭代法求3X^3+2X^2-4X=6的解。C语言+详解
-
用二分法求3X^3+2X^2-4X=6的解。C语言+详解