Untitled

mail@pastecode.io avatar
unknown
c_cpp
2 years ago
1.2 kB
1
Indexable
Never
#include <bits/stdc++.h>
using namespace std;
 
float f(float x) // f(x) function. 
{
	return sin(x) * sin(x) + x - 1; // insert your equation here.
}
float df(float x) // f'(x) function. 
{
	return sin(2 * x) + 1; // insert the first derivative of your equation here. 
}
void newton_raphson(float x0) // Main Algorithm of newton_raphson method. 
{
	printf("---------------------------\nRoot using Newton-Raphson Method\n---------------------------\n");
	int iteration = 1; // for counting iteration. 
 
	float x1; // x_n+1 declaration. 
 
	while (1) // infinite loop. This will run until we found the desirable result. 
	{
		x1 = x0 - (f(x0) / df(x0)); // Main formula of newton raphson method.  ( x_n+1 = x_n - (f(x_n)/ f'(x_n)));
 
		printf(" Iteration = %d\tx0 = %.5f\tx1 = %.5f\tf(x1) = %.5f\n", iteration, x0, x1, f(x1)); // printing results.
 
		if (abs(f(x1)) == 0) 
		{
			break; // if we found the root loop will be terminated. 
		}
		else
		{
			x0 = x1;
		}
		iteration++;
	}
	cout << "The smallest root: " << x1 << '\n';
}
 
 
 
 
 
int main()
{
	float x0, x1;
	cout << "Enter your initial guess: ";
	cin >> x0;
	newton_raphson(x0);
}