二分法求方程的根

问题描述
用二分法求方程2x2-4x2+3x-6=0;
二分求方程采用的是逐步逼近法,由于方程在坐标系上是一条连续的曲线,且最终解f(x)=0,故方程曲线与x轴相交处即为方程解。

//用二分法求方程的根
#include<iostream>
using namespace std;
int main()
{
	float x0,x1,x2,fx0,fx1,fx2;
	do{
		cin>>x1>>x2;
		fx1=x1*((2*x1-4)*x1+3)-6;//秦九昭算术表示法
		fx2=x2*((2*x2-4)*x2+3)-6;
	  }while(fx1*fx2>0);//必须输入正确的值,(所选区间的函数具有单调性)
	  do{
	  	x0=(x1+x2)/2;
	  	fx0=x0*((2*x0-4)*x0+3)-6;
	  	if(fx0*fx1<0)取互为相反数的那一段
	  	{
	  		x2=x0;
	  		fx2=fx0;
	  	}
	  	else
	  	{
	  		x1=x0;
	  		fx1=fx0;	
	  	}
	  }while(fabs(fx0)>1e-5);
	  cout<<x0;
	  return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43843978/article/details/88088099