题目详情
设函数在区间[a,b]的近似积分公式为:
其中δ=(b-a)/n,n=100。
编写计算函数在某区间近似积分的通用函数,积分计算使用上述公式。
编写主函数,输入积分区间a,b,调用函数,计算sin(x),cos(x),sin(x)+cos(x)在[a,b]的近似积分。数据类型用double。
输入格式:
两个实数,表示积分区间。
输出格式:
三个实数,用空格隔开,表示三个函数在指定区间的积分近似值。
输入样例:
0 3.14
输出样例:
1.99981 0.0329925 2.0328
- 下面代码
#include <iostream>
#include <cmath>
using namespace std;
#define N 100
double Integral(double (*fun)(double x), double a, double b)
{
double sum = 0.0, delta = (b-a)/N;;
for(int i=0;i<=N-1;i++)
{
sum=sum+(*fun)(a+i*delta);
}
sum = delta*sum;
return sum;
}
int main()
{
double a,b,c,d;
cin>>a>>b;
for(int i=0;i<3;i++)
{
switch(i)
{
case 0:cout<<( c=Integral(sin,a,b) )<<' ';break;
case 1:cout<<( d=Integral(cos,a,b) )<<' ';break;
case 2:cout<<c+d;break;
}
}
return 0;
}