函数题:求一元函数定积分
$\qquad$一元函数$f(x)$在区间$[a,b]$上定积分$\int_a^bf(x)dx$的几何意义是被积函数与横坐标轴以及直线$x=a$和直线$x=b$围成的曲边形的面积。依据几何意义求定积分的方法是将这个区域按$x$轴方向等分成若干个细小的条状区域,每个小区域近似于一个梯形(如图所示),计算出所有小梯形面积之和就可计算出区域面积的近似值。区间划分的越细求得的结果越精确。

$\qquad$现在要求用梯形法编写一个求一元定积分的函数,调用该函数求解以下三个函数在给定区间的定积分。
$(1)~y=x^2$
$(2)~y=x^3$
$(3)~y=\sin x$
### 函数接口定义:
c++
double integration(double (*p)(),double a,double b,int n);
其中 a 和 b 是积分区间的端点,n是对积分区间的等分数量。 p 是一个指向函数的指针。
### 裁判测试程序样例:
c++
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double square(double x)
{
return x*x;
}
double cube(double x)
{
return x*x*x;
}
/*你编写的积分函数嵌入在这里*/
int main()
{
/*求平方函数在区间[0,2]上的定积分*/
printf("square=%f\n",integration(square,0,2,10000));
/*求立方函数在区间[0,2]上的定积分*/
printf("cube=%f\n",integration(cube,0,2,10000));
/*求正弦函数在区间[0,2]上的定积分*/
printf("sin=%f\n",integration(sin,0,2,10000));
return 0;
}
### 输入样例:
in
0 2 100000
### 输出样例:
out
square=2.666667
cube=4.000000
sin=1.416147
答案:若无答案欢迎评论

$\qquad$现在要求用梯形法编写一个求一元定积分的函数,调用该函数求解以下三个函数在给定区间的定积分。
$(1)~y=x^2$
$(2)~y=x^3$
$(3)~y=\sin x$
### 函数接口定义:
c++
double integration(double (*p)(),double a,double b,int n);
其中 a 和 b 是积分区间的端点,n是对积分区间的等分数量。 p 是一个指向函数的指针。
### 裁判测试程序样例:
c++
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double square(double x)
{
return x*x;
}
double cube(double x)
{
return x*x*x;
}
/*你编写的积分函数嵌入在这里*/
int main()
{
/*求平方函数在区间[0,2]上的定积分*/
printf("square=%f\n",integration(square,0,2,10000));
/*求立方函数在区间[0,2]上的定积分*/
printf("cube=%f\n",integration(cube,0,2,10000));
/*求正弦函数在区间[0,2]上的定积分*/
printf("sin=%f\n",integration(sin,0,2,10000));
return 0;
}
### 输入样例:
in
0 2 100000
### 输出样例:
out
square=2.666667
cube=4.000000
sin=1.416147
答案:若无答案欢迎评论