二分法.cpp

来自「计算方法中的五种算法: 二分法、简单迭代法、快速弦截法、龙贝格算法、弦截法。 」· C++ 代码 · 共 55 行

CPP
55
字号
#include<iostream.h>
#include<math.h>

double f(double x)
{
	return sin(x) - x * x /4;
}

void ErFen(double a, double b, double e)
{
	double x, y, t;
	cout<<'\t'<<"k\t"<<"x\t"<<"y\n";
	if( fabs(a-b) <e)
		cout<<"结果为:"<<(a+b)/2<<'\n';
	else
	{
		for(int k = 0; ; k++)
		{
			t = fabs(a - b);
			if(t < e)
			{
				cout<<"结果为:"<<x<<'\n';
				break;
			}
			x = (a + b) / 2;
			y = f(x);
			cout<<'\t'<<k<<'\t'<<x<<'\t'<<y<<'\n';
			if(y == 0)
			{
				cout<<"结果为:"<<x<<'\n';
				break;
			}
			else if(y * f(a) < 0)
			{
				b = x;
			}
			else
			{
				a = x;
			}
		}
	}
}

void main(void)
{
	double a, b, e;
	cout<<"输入左区间值:";
	cin>>a;
	cout<<"输入右区间值:";
	cin>>b;
	cout<<"输入精度:";
	cin>>e;
	ErFen(a, b, e);
}

⌨️ 快捷键说明

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