梯形法.cpp

来自「这是我编的一个利用梯形法数值计算积分的程序。」· C++ 代码 · 共 45 行

CPP
45
字号
#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 + =
减小字号Ctrl + -
显示快捷键?