积分上限四分之π 积分下限负四分之π 被积函数tanx 积分上限e 积分下限负e 被积函数e**x
要求一:写两个子函数分别实现;用矩形法近似计算定积分断点分
11,101,1001三种情况计算,并比较计算结果。要求二:用梯形法完成上述定积分计算。两种方法都要有谢谢大佬
你好同学,代码供参考:
矩形法和梯形法
#include<stdio.h>
#include<math.h>
double const pi = 3.141592653;
double f(double x){
//return tan(x); //可以改成exp(x)
return exp(x);
}
// 矩形法
double rect(double a, double b, int n){
int i;
double h, s;
h = (b-a)/(n-1);
s = 0;
for(i=0; i<n-1; i++){
s+=f(a+i*h)*h;
}
return s;
}
// 梯形法
double trapz(double a, double b, int n){
int i;
double h,s;
s = 0;
h = (b-a)/(n-1);
for(i=1;i<n-1;i++){
s+=f(a+i*h)*h;
}
s+=(f(a)+f(b))*0.5*h;
return s;
}
int main(){
double a,b;
double s; //面积
// 上下限
//a = -pi/4;
//b = pi/4;
a = -exp(1);
b = exp(1);
s = rect(a, b, 11);//矩形法,可以改成101、1001
printf("矩形法面积:%lf\n",s);
s = trapz(a, b, 11);//梯形法,可以改成101、1001
printf("梯形法面积:%lf\n",s);
return 0;
}
我这里拿y=exp(x)从-e到e积分作为例子,然后分别用矩形法和梯形法计算,分11段结果如下:
矩形法面积:11.356665
梯形法面积:15.458083
因为实际的积分值为15.0883,可见梯形法的精度比矩形法要高(在相同划分段数的情况下)