⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 龙贝格算法2.cpp

📁 计算方法中的五种算法: 二分法、简单迭代法、快速弦截法、龙贝格算法、弦截法。 附说明
💻 CPP
字号:
#include<iostream.h>
#include<math.h>

double f(double x)
{
	return 1.0/(1+x);
}

void Romberg(double a, double b, double e)
{
	double h = b - a;
	int k = 0, j;
	double T[10][10];
	T[0][0] = ( f(a) + f(b) ) * h / 2;
	cout<<'\t'<<"k\t"<<"T\t"<<"S\t"<<"C\t"<<"R\n";
	cout<<'\t'<<k<<'\t'<<T[0][0]<<'\n';
	for(k = 1; ; k++)
	{
		double temp = 0;
		for(int i = 1; i<=pow(2,k-1); i++)
		{
			temp += f(a + (i-1.0/2)*h );
		}
		T[0][k] = 1.0/2 * ( T[0][k-1] + h*temp );
		cout<<'\t'<<k<<'\t'<<T[0][k];
		for(j=1; j<=3&&j<=k; j++)
		{
			T[j][k-j] = ( pow(4,j)*T[j-1][k-j+1] - T[j-1][k-j] ) / ( pow(4,j) - 1 );
			cout<<'\t'<<T[j][k-j];
		}
		cout<<'\n';
		if( fabs(T[j-1][k-j+1]-T[j-2][k-j+2] )<e )
		{
			cout<<"结果为:"<<T[j-1][k-j+1]<<'\n';
			break;
		}
		else
		{
			h = h/2;
		}
	}	
}

void main(void)
{
	double a, b, e;
	cout<<"输入上限:";
	cin>>b;
	cout<<"输入下限:";
	cin>>a;
	cout<<"输入精度:";
	cin>>e;
	Romberg(a, b, e);
}

⌨️ 快捷键说明

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