📄 梯形法.cpp
字号:
#include<iostream.h>
#include<math.h>
#define Pi 3.1415926535//给圆周率赋值
int n=1;//分段数
double InterGra(int);//定义函数积分
double Fun(double);//定义被积分函数
void main()
{
cout<<"梯形法计算函数f(x)=xcos(x)sin(30x)从0到2pi上的积分"<<endl;
double Dif=10000;
while(Dif>0.000000000000000001)
{
n=2*n;
Dif=(InterGra(n)-InterGra(2*n))*(InterGra(n)-InterGra(2*n));
cout<<"n="<<n<<" ""I="<<InterGra(n)<<" "<<"error="<<sqrt(Dif)<<endl;
}
}
//判断n和2n的划分的差别是否收敛,收敛则输出积分结果
double InterGra(int m)
{
double h=2*Pi/double(m);
double Xi;
double sum=0;
for(int i=0;i<m;i++)
{
Xi=i*h;
sum=sum+Fun(Xi)+Fun(Xi+h);
}
return sum*h/2;
}
//实现对被积函数的积分
double Fun(double x)
{
return x*cos(x)*sin(30*x);
}
//返回被积函数的值
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -