You are on page 1of 1

#include <iostream>

#include <cmath>

using namespace std;


double fungsi_fx(double x)//f(x)
{
return (x*x*x-2*x*x-2*x+1);
}
int main ()
{
int i;
double xi1, xi2, xi3; //xi = xi, xi1=xi+1
double fx1, fx2, fx3, gfx;// fx=f(x), dfx= gradien x
double error;
i=0;
xi1=0.0; xi2=1.0;

do{

fx1=fungsi_fx(xi1);
fx2=fungsi_fx(xi2);
//gfx=(fx2-fx1)/(xi2-xi1);
xi3=(xi2+xi1)/2;// rumus metode bisection
fx3= fungsi_fx(xi3);
error = abs(xi3-xi1);

if (fx1*fx3 <0){
xi2 = xi3;
fx2 = fx3;
xi1 = xi1;
fx1 = fx1;

}
else if(fx1*fx3 >0){
xi1 = xi3;
fx1 = fx3;
xi2 = xi2;
fx2 = fx2;
}
cout<<"iterasi ke-"<<i<<endl;
cout<<"xi+1="<<xi3<<endl;
cout<<"error"<<error<<endl;
i=i+1;
} while(error>1.0e-10);

return 0;
}

You might also like