Newton Raphson Method – Theory, Algorithm, and Code

Theory

Newton Raphson Method (NR-method) is an open-end method that uses only one initial guess based on a linear approximation of a function using a tangent to a curve.

Consider a graph f(x) as shown in the figure. Let us assume that x1 is an approximate root of f(x). Now draw a tangent on the curve f(x) at x = x1. The point of intersection of this tangent with the x-axis gives the second approximation.

From figure (1),

tanθ = f(x1) / (x1 – x2)

tanθ = f'(x1)

where,

f'(x1) is the slope of f(x) at x = x1

On solving

x2 = x1 – f(x1) / f'(x2)

Then the next approximation will be

x3 = x2 – f(x2) / f'(x2)

In general,

xn+1 = xn – f(xn) / f'(xn)

Newton Raphson method
Newton Raphson method

Algorithm

  1. Start
  2. Define function f(x), and its derivative g(x) and error E
  3. Read initial guess x0
  4. Calcualte x1 = x0 – f(x0) / g(x0)
  5. If |x1 – x0| <= E, print root x1
    • else, goto step 4
  6. Stop

Source Code

#include<iostream>
#include<math.h>
#define f(x) (x*x - 4*x - 10)
#define g(x) (2*x - 4) // derivative of f(x)
#define E 0.0001

using namespace std;

int main() {
    float x1, x2, f1, f2, g1;
    cout<<"Enter the initial values"<<endl;
    cin>>x1;
    
    do {
        f1 = f(x1);
        g1 = g(x1);
        x2 = x1 - (f1/g1);
        x1 = x2;
        f2 = f(x2);
    }while(f2 > E);

    cout<<"Root is "<<x2;

    return 0;
}

Output

Enter the initial values
4
Root is 5.74166

0 0 votes
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments