早教吧 育儿知识 作业答案 考试题库 百科 知识分享

C语言实习用梯形法或辛普森法求解定积分的值求一个函数f(x)在[a,b]上的定积分,其几何意义是求f(x)曲线和直线x=a,y=0,x=b所围成的曲边梯形面积。为了近似求出此面积,可将[a,b]区间分成若

题目详情
C语言实习用梯形法或辛普森法求解定积分的值
求一个函数f(x)在[a,b]上的定积分,其几何意义是求f(x)曲线和直线x=a,y=0,x=b所围成的曲边梯形面积。为了近似求出此面积,可将[a,b]区间分成若干个小区间,每个区间的宽度为(b-a)/n,n为区间个数。近似求出每个小的曲边梯形面积,然后将n个小面积加起来,就近似得到总的面积,即定积分的近似值。当n越大(即区间分的越小),近似成都越高。
算法分析:数值积分通常用的算法如下。
①梯形法:用小梯形代替小曲边梯形。
②辛普森法:在小区间范围内,用一条抛物线代替该区间的f(x),将(a,b)区间分成2n个小区间。
▼优质解答
答案和解析
//梯形法求定积分
#include
#include
//定义被积函数
double func(double x){
    return sin(x)*cos(x);
}
void main(){
    double a,b,h,x,sum;
    int i,n;
    printf("Input a b and n: ");
    scanf("%lf%lf%d",&a,&b,&n);
    h=(b-a)/n;
    x=a;
    sum=(func(a)+func(b))/2;
    for(i=1; i        x += h;
        sum += func(x);
    }
    sum *= h;
    printf("sum=%.4lf",sum);
}