Bisection Method // C++ code

Posted: January 31, 2012 by muhammadakif in Algorithms
Tags: , , , ,

#include<iostream.h>
#include<conio.h>
#include<math.h>

float f (float x)
{
	float fx1;
	fx1 = pow(x,3) + pow(x,2) - (3*x) - 3;
	return (fx1);
}

void main()
{
	float x1,x2,x3;
	int count = 0;
	int iter;

	cout <<"Enter x1 = ";
	cin >> x1;
	cout <<"Enter x2 = ";
	cin >> x2;
	cout <<"Enter number of iterations = ";
	cin >> iter;

//	int fx1 = (x1^3) + (x1^2) - (3x1) - 3;
//	int fx2 = (x2^3) + (x2^2) - (3x2) - 3;
	do
	{
		if(count == iter)
		{
			break;
		}

		x3 = (x1 + x2)/2;

		cout <<"x1=" << x1 <<" | x2="<< x2 <<" | x3=" << x3 <<" | " << "  f(x1)=" << f(x1) << " |  f(x2)=" << f(x2) << " |  f(x3)=" << f(x3) << endl << endl;

		//float temp1 = f(x1);
		//float temp2 = f(x3);
		if( f(x1) * f(x3) < 0 )
		{
			x2 = x3;
		}
		else
		{
			x1 = x3;
		}
		count++;
	}
	while ( abs(x1 - x2) < 0.0000001 || f(x3) == 0 );

}
Advertisements
Comments
  1. roro says:

    Thank you so much !

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s