bisection method by c

Thread Starter

swty_todd

Joined Aug 3, 2008
82
here is the c program for arriving at a solution using bisection method.
The ouput is going infinte..pls help ....i think it has more of syntax errors than logical errors...

Rich (BB code):
#include<stdio.h>
#include<math.h>
main()
{float a,b,c,x1,x2,x,series;
double d;
 
printf("enter a,b,c and x1(pos) & x2(neg)");
scanf("%f%f%f%f%f",&a,&b,&c,&x1,&x2);

x=0;
d=1;
 while(d>0.0001)
    {
      x=(x1+x2)/2;
      
     series=a*x*x+b*x+c;
      
     d=fabs(series);
      
         if(x*x1 < 0)
             x2=x;
         else
             x1=x;
    }
     
printf("ans=%f",x);
 
return 0;
}
 
Last edited:

Mark44

Joined Nov 26, 2007
626
You can't have any syntax errors if the compiler is producing an executable, so any errors you have must be logic errors.

Apparently you're trying to find roots of a quadratic equation by choosing x values that straddle the root you're trying to find.

One suggestion I would make is to do your input one value at a time instead of all five at once. Can you verify that a, b, c, x1, and x2 are being set appropriately? You can do that using a debugger, or if you don't have one available, you can put printf statements after your input line(s).

What are your input values for a, b, c, x1, and x2? If I knew these, I could tell what your program is doing.

Mark
 
Top