二分法.cpp

来自「使用C++编写的经典数值计算算法,包括NEWTON迭带法,SIMPSON,二分法」· C++ 代码 · 共 48 行

CPP
48
字号
#include<iostream.h>
#include<math.h>
double f(double x)
{
	double y=sqrt(x);
	return y;
}
void g(double e,double a,double T0,double h,int k)
{
	double T;
	double F=0;
    for(int i=1;i<=pow(2,k-1);i++)
	{
		F=F+f(a+(2*i-1)*h);
	}
	T=T0/2+h*F;
	if(fabs(T-T0)>3*e)
	{
		T0=T;
		k++;
		h=h/2;
		cout<<k-2<<"  "<<T<<"   "<<'\n';
		g(e,a,T0,h,k);
	}
	else cout<<'\n'<<"积分值为:"<<T;
}

void main()
{
	double a,b;
	cout<<"输入下限:";
	cin>>a;
	cout<<"输入上限:";
	cin>>b;
	double e;
	cout<<"输入分辨精度:";
	cin>>e;
    double h=(b-a)/2;
    double T0=h*(f(a)+f(b));
	int k=1;
    g(e,a,T0,h,k);
}

		

	
	

⌨️ 快捷键说明

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