sin、cos、exp函数已经存在,头文件在cmath。
矩阵法:将光滑图形分为n个长方形,再对每个长方形求面积之和,即为定积分值。
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
float integral(float a,float b,float (*p)(float),int n);//将图形分为矩形,求面积
float fsin(float ); //求sin(x)
float fcos(float ); //求cos(x)
float fexp(float ); //求exp(x)
const int n=100;
float a1,b1,a2,b2,a3,b3,(*p)(float),c;
cin>>a1>>b1;
p=fsin;
c=integral(a1,b1,p,n);
cout<<c<<endl;
cin>>a2>>b2;
p=fcos;
c=integral(a2,b2,p,n);
cout<<c<<endl;
cin>>a3>>b3;
p=fexp;
c=integral(a3,b3,p,n);
cout<<c<<endl;
}
float fsin(float x)
{
return sin(x);
}
float fcos(float x)
{
return cos(x);
}
float fexp(float x)
{
return exp(x);
}
float integral(float a,float b,float (*p)(float),int n)
{
int i;
float h,x=a,s=0;
h=(b-a)/n; //将图形分为n个小矩形
for(i=1;i<=n;i++)
{
x=x+h;
s=s+(*p)(x)*h;
}
return s;
}