Theoretical Paper
- Computer Organization
- Data Structure
- Digital Electronics
- Object Oriented Programming
- Discrete Mathematics
- Graph Theory
- Operating Systems
- Software Engineering
- Computer Graphics
- Database Management System
- Operation Research
- Computer Networking
- Image Processing
- Internet Technologies
- Micro Processor
- E-Commerce & ERP
- Dart Programming
- Flutter Tutorial
- Numerical Methods Tutorials
Practical Paper
Industrial Training
Newton Raphson Method
This is fairly good method, which doesnt requires any search interval. It only needs an initial guess. But lack of interval is compensated by First order derivative of function. the algorithm is fairly simple and gives close the accurate results in most of the cases
do r+1=r- f(r)/f'(r) while (none of the convergence criterion C1 or C2 is met)
Convergence criterias are:-
- C1. Fixing apriori the total number of iterations N.
- C2. By testing the condition |xi+1−xi| (where i is the iteration number) less than some tolerance limit, say epsilon, fixed threshold.
C Implementation
#include < stdio.h> #include < stdlib.h> #include < math.h> #define f(x) ((x*x*x)-18) #define fd(x) (3*x*x) #define fdd(x) 6*x int main(){ float x0,x1,error,errorold,converge,order; int i=0; printf("Input the approximation : "); scanf("%f",&x0); converge= (f(x0)*fdd(x0))/(fd(x0)*fd(x0)); if(converge >1) exit(1); printf("Ite\tX0\t\tX1\t\tError\t\tOrder\n"); do{ errorold=error; x1=x0-(f(x0)/fd(x0)); if(f(x1)==0){ break; } error=fabs(x1-x0); printf("%2d\t%4.6f\t%4.6f\t%4.6f\t",++i,x0,x1,error); if(i==1||error==0||errorold==1){ printf("-----\n"); } else {order=log(error)/log(errorold); printf("%4.6f\n",order); } x0=x1; }while(error>0.00005); printf("Root is %4.6f",x0); return 0; }
Output
Ite X0 X1 Error Order 1 2.000000 2.833333 0.833333 ----- 2 2.833333 2.636294 0.197040 8.909258 3 2.636294 2.620833 0.015461 2.566843