longbeige.cpp

来自「计算方法计算方法程序longbeige 龙贝格求积法」· C++ 代码 · 共 46 行

CPP
46
字号
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;

double f(double x);

int main()
{	
	double a,b,h,ep;
	int n=1,k=0;
	cout<<"输入积分区间[a,b]:";
	cin>>a>>b;
	cout<<"输入允许误差:";
	cin>>ep;
	double t1,t2,s1,s2=0,c1,c2=0,r1,r2=0;
	h=(b-a)/2;
	t2=h*(f(a)+f(b));
	do
	{
		t1=t2;s1=s2;c1=c2;r1=r2;		
		double s=0;
		for(int i=1;i<=n;i++)
		{
			s=s+f(a+(2*i-1)*h);
		}
		t2=t1/2+s*h;
		s2=(4*t2-t1)/3;
		c2=(16*s2-s1)/15;
		r2=(64*c2-c1)/63;
		n=n*2;k=k+1;
		h=h/2.0;
	}while(fabs(r2-r1)>=ep);

	cout<<"结果为:"<<setiosflags(ios::fixed)<<setprecision(5)<<r2<<endl;
	return 0;
}


double f(double x)
{
	return 1/x;

}

⌨️ 快捷键说明

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