1. 程式人生 > >初學者-簡單的二分法求解

初學者-簡單的二分法求解

#include<iostream>
#include<cmath>
using namespace std;
inline float f(float x)
{
return 2*x*x*x-4*x*x+3*x-6;
}
int main()
{
float left,right,middle,yr,yl,ym;
cin>>left>>right;
yl=f(left);
yr=f(right);
do
{
   middle=(left+right)/2;
   ym=f(middle);
   if(yr*ym>0)
   {
     right=middle;
     yr=ym;
   }
   else
   {
     left=middle;
     yl=ym;
   }
 
    }while(fabs(ym)>=1e-6);
  cout<<middle<<endl;
   return 0;

}