用二分法求解f(x)=0的根
//**************************************************************//*编制程序名:zuoye2_26.cpp
//*编制时间:2013年4月7日
//*编制者:吴丽华
//*编制功能:编写一个c++风格的程序,用二分法求解f(x)=0的根 。
//**************************************************************
#include <iostream>
using namespace std;
#include<cmath>
int main()
{
float x0,x1,x2,fx0,fx1,fx2;
do
{
cout<<"enter x1&x2: "<<endl;
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<<"x= "<<x0<<endl;
return 0;
}
运行结果:
enter x1&x2:
-10 10
x= 2
Press any key to continue