#include <iostream>
#include<math.h>
#include <iomanip>
#define err 0.0001
using namespace std;
float f(float x){
return //your equation
}
float regula(float x0,float x1)
{
return x0-((x1-x0)/(f(x1)-f(x0))*f(x0));
}
int main()
{
int i = 1,max;
float x0,x1,x2,x3;
cout<<"Enter initial approximate roots a: ";
cin>>x0;
cout<<"Enter initial approximate roots x1: ";
cin>>x1;
cout<<"Enter max no of iteration: ";
cin>>max;
cout<<setprecision(6)<<"Iteration\tRoot\n";
x2 = regula(x0,x1);
while(i<max)
{
cout<<i<<"\t\t"<<x2<<endl;
if(f(x0) * f(x2) < 0)
{
x1 = x2;
}
else
{
x0=x2;
}
x3 = regula(x0,x1);
i++;
if(fabs(x3-x2)<err)
{
cout<<"\nRoot after "<<i<<" iteration = "<<setprecision(5)<<regula(x0,x1)<<endl;
return 0;
}
x2 = x3;
}
cout<<"\nSolution does not cover: "<<i<<" iteration is insufficient";
return 1;
}
0 Comments: