Newton-Raphson Method:
xn+1 = xn-f(xn)/f ‘(xn)
How it works:
Suppose you need to find the root of a continuous, differentiable function f(x), and you know the root you are looking for is near the point x = x_0. Then Newton’s method tells us that a better approximation for the root is
x_1 = x_0 – \frac{f(x_0)}{f'(x_0)}.
This process may be repeated as many times as necessary to get the desired accuracy. In general, for any x-value x_n, the next value is given by
x_{n+1} = x_n – \frac{f(x_n)}{f'(x_n)}.
Note: the term “near” is used loosely because it does not need a precise definition in this context. However, x_0 should be closer to the root you need than to any other root (if the function has multiple roots)
C++ program to find root using Newton-Raphson method:
You can also execute this code on our online compiler.
#include <iostream> #include <math.h> using namespace std; float fn(float x) { return pow(x,2)+(3*x)+1 ; } float de(float x) { return 2*x + 3 ; } int main() { float a,e=0,z; cout<<"Enter Number "; cin>>a; do { e++; z=a-(fn(a)/de(a)); cout<<"The iterative "<<e<<" root is "<<z; a=z; cout<<endl; }while(abs(fn(z))>0.001); return 0; }
Output:
$g++ -o main *.cpp $main Enter Number The iterative 1 root is -0.333333 The iterative 2 root is -0.380952 The iterative 3 root is -0.381966
Please comment in case of any query, issues or concerns.