梯形公式和辛普生.cpp

来自「迭代法 梯形和辛普生方法 数值计算中经常遇到的问题」· C++ 代码 · 共 73 行

CPP
73
字号
#include<iostream.h>
double f(double x)
{
	return x/(4+x*x);
}
void main()
{
	int i,n;
	double a,b,h,x,s,result;
	cout<<"输入积分的上下限a,b:";
	cin>>a>>b;
	cout<<"使用梯形公式计算:"<<endl;
	cout<<"输入n的值:";
	cin>>n;
	h=(b-a)/n;
	s=0;
	for(i=1;i<n;i++)
	{
    	x=a+i*h;
		s=s+2*f(x);	
	}
	result=(s+f(a)+f(b))*h/2;
	cout<<"梯形公式计算的结果为"<<result<<endl;
    cout<<"使用辛卜生公式计算:"<<endl;
	cout<<"输入n的值:";
	cin>>n;
	h=(b-a)/n;
	s=0;
    for(i=1;i<=n;i++)
		s=s+2*f(a+(i-0.5)*h)+f(a+i*h);
	result=(s+(f(a)-f(b))/2)*h/3;
	cout<<"辛卜生公式计算的结果为:"<<result<<endl;
}





#include<iostream.h>
#include<math.h>
double f(double x)
{
	return sqrt(x);
}
void main()
{
	int i,n;
	double a,b,h,x,s,result;
	cout<<"输入积分的上下限a,b:";
	cin>>a>>b;
	cout<<"使用梯形公式计算:"<<endl;
	cout<<"输入n的值:";
	cin>>n;
	h=(b-a)/n;
	s=0;
	for(i=1;i<n;i++)
	{
    	x=a+i*h;
		s=s+2*f(x);	
	}
	result=(s+f(a)+f(b))*h/2;
	cout<<"梯形公式计算的结果为"<<result<<endl;
    cout<<"使用辛卜生公式计算:"<<endl;
	cout<<"输入n的值:";
	cin>>n;
	h=(b-a)/n;
	s=0;
    for(i=1;i<=n;i++)
		s=s+2*f(a+(i-0.5)*h)+f(a+i*h);
	result=(s+(f(a)-f(b))/2)*h/3;
	cout<<"辛卜生公式计算的结果为:"<<result<<endl;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?