#include<stdio.h> #include<math.h> #define F(x) ((2*x)+1) #define ERROR 0.00001 float Bisection(float a, float b) { float mid; do { mid = (a+b)/2; printf("F(a): %f, F(b) : %f, F(mid) : %f\n", F(a), F(b), F(mid)); if((F(mid)>0 && F(a)>0) || (F(mid)<0 && F(a)<0)) { a = mid; } else { b = mid; } } while(fabsf(F(mid)) > ERROR); return a; } int main() { float a = -2.5; float b = 2.5; printf("Finding root in the interval [%f, %f]\n", a, b); if((F(a)>0 && F(b)>0) || (F(a)<0 && F(b)<0)) { printf("No root lie in the interval [%f, %f]", a, b); } else { printf("The root is : %f\n", Bisection(a, b)); } return 0; }
Wednesday, 17 December 2014
Find root using Bisection Method
Labels:
Root finding
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment