C Program for Newton Raphson (NR) Method (with Output)
This program implements Newton Raphson method for finding real root of nonlinear equation in C programming language.
In this C program, x0 is initial guess value, e is tolerable error and f(x) is non-linear function whose root is being obtained using Newton method.
C Source Code: Newton Raphson Method
/* Program: Finding real roots of nonlinear
equation using Newton Raphson Method
Author: CodeSansar
Date: November 18, 2018 */
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
/* Defining equation to be solved.
Change this equation to solve another problem. */
#define f(x) 3*x - cos(x) -1
/* Defining derivative of g(x).
As you change f(x), change this function also. */
#define g(x) 3 + sin(x)
void main()
{
float x0, x1, f0, f1, g0, e;
int step = 1, N;
clrscr();
/* Inputs */
printf("\nEnter initial guess:\n");
scanf("%f", &x0);
printf("Enter tolerable error:\n");
scanf("%f", &e);
printf("Enter maximum iteration:\n");
scanf("%d", &N);
/* Implementing Newton Raphson Method */
printf("\nStep\t\tx0\t\tf(x0)\t\tx1\t\tf(x1)\n");
do
{
g0 = g(x0);
f0 = f(x0);
if(g0 == 0.0)
{
printf("Mathematical Error.");
exit(0);
}
x1 = x0 - f0/g0;
printf("%d\t\t%f\t%f\t%f\t%f\n",step,x0,f0,x1,f1);
x0 = x1;
step = step+1;
if(step > N)
{
printf("Not Convergent.");
exit(0);
}
f1 = f(x1);
}while(fabs(f1)>e);
printf("\nRoot is: %f", x1);
getch();
}
Output: Newton Raphson Method Using C
Enter initial guess: 1 Enter tolerable error: 0.00001 Enter maximum iteration: 10 Step x0 f(x0) x1 f(x1) 1 1.000000 1.459698 0.620016 0.000000 2 0.620016 0.046179 0.607121 0.046179 3 0.607121 0.000068 0.607102 0.000068 Root is: 0.607102