fork download
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <cmath>
  4.  
  5. using namespace std;
  6.  
  7. double f(double x) {
  8. return x*x*x - x - 3;
  9. }
  10.  
  11. double f_prime(double x) {
  12. return 3*x*x - 1;
  13. }
  14.  
  15. int main() {
  16. double x0, E, true_root;
  17.  
  18. cout << "NEWTON-RAPHSON METHOD" << endl;
  19. cout << "f(x) = x³ - x - 3" << endl;
  20. cout << "f'(x) = 3x² - 1" << endl;
  21.  
  22. cout << "INITIAL X0: ";
  23. cin >> x0;
  24. cout << "ENTER TOLERANCE E: ";
  25. cin >> E;
  26. cout << "ENTER TRUE ROOT (for error calculation): ";
  27. cin >> true_root;
  28.  
  29. double x1, fx0, fpx0, error, percent_error;
  30. int iteration = 0;
  31.  
  32. cout << fixed << setprecision(6);
  33. cout << "\n*" << endl;
  34. cout << "ITERATION\tX0\t\tf(X0)\t\tf'(X0)\t\tX1\t\tError\t\t% Error" << endl;
  35. cout << "*" << endl;
  36.  
  37. do {
  38. fx0 = f(x0);
  39. fpx0 = f_prime(x0);
  40. x1 = x0 - fx0 / fpx0;
  41.  
  42. error = fabs(x1 - true_root);
  43. percent_error = (error / true_root) * 100;
  44.  
  45. iteration++;
  46.  
  47. cout << iteration << "\t\t" << x0 << "\t" << fx0 << "\t" << fpx0
  48. << "\t" << x1 << "\t" << error << "\t" << percent_error << endl;
  49.  
  50. if (fabs((x1 - x0) / x1) < E) break;
  51. x0 = x1;
  52.  
  53. } while (iteration < 100);
  54.  
  55. cout << "*" << endl;
  56. cout << "THE ROOT OF EQUATION IS " << x1 << endl;
  57.  
  58. return 0;
  59. }
Success #stdin #stdout 0.01s 5312KB
stdin
Standard input is empty
stdout
NEWTON-RAPHSON METHOD
f(x) = x³ - x - 3
f'(x) = 3x² - 1
INITIAL X0: ENTER TOLERANCE E: ENTER TRUE ROOT (for error calculation): 
*
ITERATION	X0		f(X0)		f'(X0)		X1		Error		% Error
*
1		0.000000	-3.000000	-1.000000	-3.000000	3.000000	inf
2		-3.000000	-27.000000	26.000000	-1.961538	1.961538	inf
3		-1.961538	-8.585742	10.542899	-1.147176	1.147176	inf
4		-1.147176	-3.362522	2.948038	-0.006579	0.006579	inf
5		-0.006579	-2.993421	-0.999870	-3.000389	3.000389	inf
6		-3.000389	-27.010117	26.007004	-1.961818	1.961818	inf
7		-1.961818	-8.588691	10.546192	-1.147430	1.147430	inf
8		-1.147430	-3.363272	2.949788	-0.007256	0.007256	inf
9		-0.007256	-2.992744	-0.999842	-3.000473	3.000473	inf
10		-3.000473	-27.012305	26.008518	-1.961879	1.961879	inf
11		-1.961879	-8.589329	10.546903	-1.147485	1.147485	inf
12		-1.147485	-3.363434	2.950167	-0.007403	0.007403	inf
13		-0.007403	-2.992598	-0.999836	-3.000492	3.000492	inf
14		-3.000492	-27.012806	26.008865	-1.961892	1.961892	inf
15		-1.961892	-8.589475	10.547066	-1.147498	1.147498	inf
16		-1.147498	-3.363471	2.950253	-0.007436	0.007436	inf
17		-0.007436	-2.992564	-0.999834	-3.000497	3.000497	inf
18		-3.000497	-27.012922	26.008945	-1.961896	1.961896	inf
19		-1.961896	-8.589509	10.547104	-1.147501	1.147501	inf
20		-1.147501	-3.363480	2.950273	-0.007444	0.007444	inf
21		-0.007444	-2.992557	-0.999834	-3.000498	3.000498	inf
22		-3.000498	-27.012949	26.008964	-1.961896	1.961896	inf
23		-1.961896	-8.589517	10.547113	-1.147501	1.147501	inf
24		-1.147501	-3.363482	2.950278	-0.007446	0.007446	inf
25		-0.007446	-2.992555	-0.999834	-3.000498	3.000498	inf
26		-3.000498	-27.012955	26.008968	-1.961897	1.961897	inf
27		-1.961897	-8.589519	10.547115	-1.147502	1.147502	inf
28		-1.147502	-3.363482	2.950279	-0.007446	0.007446	inf
29		-0.007446	-2.992554	-0.999834	-3.000498	3.000498	inf
30		-3.000498	-27.012956	26.008969	-1.961897	1.961897	inf
31		-1.961897	-8.589519	10.547115	-1.147502	1.147502	inf
32		-1.147502	-3.363482	2.950279	-0.007446	0.007446	inf
33		-0.007446	-2.992554	-0.999834	-3.000498	3.000498	inf
34		-3.000498	-27.012957	26.008969	-1.961897	1.961897	inf
35		-1.961897	-8.589519	10.547116	-1.147502	1.147502	inf
36		-1.147502	-3.363482	2.950280	-0.007446	0.007446	inf
37		-0.007446	-2.992554	-0.999834	-3.000498	3.000498	inf
38		-3.000498	-27.012957	26.008969	-1.961897	1.961897	inf
39		-1.961897	-8.589519	10.547116	-1.147502	1.147502	inf
40		-1.147502	-3.363482	2.950280	-0.007446	0.007446	inf
41		-0.007446	-2.992554	-0.999834	-3.000498	3.000498	inf
42		-3.000498	-27.012957	26.008969	-1.961897	1.961897	inf
43		-1.961897	-8.589519	10.547116	-1.147502	1.147502	inf
44		-1.147502	-3.363482	2.950280	-0.007446	0.007446	inf
45		-0.007446	-2.992554	-0.999834	-3.000498	3.000498	inf
46		-3.000498	-27.012957	26.008969	-1.961897	1.961897	inf
47		-1.961897	-8.589519	10.547116	-1.147502	1.147502	inf
48		-1.147502	-3.363482	2.950280	-0.007446	0.007446	inf
49		-0.007446	-2.992554	-0.999834	-3.000498	3.000498	inf
50		-3.000498	-27.012957	26.008969	-1.961897	1.961897	inf
51		-1.961897	-8.589519	10.547116	-1.147502	1.147502	inf
52		-1.147502	-3.363482	2.950280	-0.007446	0.007446	inf
53		-0.007446	-2.992554	-0.999834	-3.000498	3.000498	inf
54		-3.000498	-27.012957	26.008969	-1.961897	1.961897	inf
55		-1.961897	-8.589519	10.547116	-1.147502	1.147502	inf
56		-1.147502	-3.363482	2.950280	-0.007446	0.007446	inf
57		-0.007446	-2.992554	-0.999834	-3.000498	3.000498	inf
58		-3.000498	-27.012957	26.008969	-1.961897	1.961897	inf
59		-1.961897	-8.589519	10.547116	-1.147502	1.147502	inf
60		-1.147502	-3.363482	2.950280	-0.007446	0.007446	inf
61		-0.007446	-2.992554	-0.999834	-3.000498	3.000498	inf
62		-3.000498	-27.012957	26.008969	-1.961897	1.961897	inf
63		-1.961897	-8.589519	10.547116	-1.147502	1.147502	inf
64		-1.147502	-3.363482	2.950280	-0.007446	0.007446	inf
65		-0.007446	-2.992554	-0.999834	-3.000498	3.000498	inf
66		-3.000498	-27.012957	26.008969	-1.961897	1.961897	inf
67		-1.961897	-8.589519	10.547116	-1.147502	1.147502	inf
68		-1.147502	-3.363482	2.950280	-0.007446	0.007446	inf
69		-0.007446	-2.992554	-0.999834	-3.000498	3.000498	inf
70		-3.000498	-27.012957	26.008969	-1.961897	1.961897	inf
71		-1.961897	-8.589519	10.547116	-1.147502	1.147502	inf
72		-1.147502	-3.363482	2.950280	-0.007446	0.007446	inf
73		-0.007446	-2.992554	-0.999834	-3.000498	3.000498	inf
74		-3.000498	-27.012957	26.008969	-1.961897	1.961897	inf
75		-1.961897	-8.589519	10.547116	-1.147502	1.147502	inf
76		-1.147502	-3.363482	2.950280	-0.007446	0.007446	inf
77		-0.007446	-2.992554	-0.999834	-3.000498	3.000498	inf
78		-3.000498	-27.012957	26.008969	-1.961897	1.961897	inf
79		-1.961897	-8.589519	10.547116	-1.147502	1.147502	inf
80		-1.147502	-3.363482	2.950280	-0.007446	0.007446	inf
81		-0.007446	-2.992554	-0.999834	-3.000498	3.000498	inf
82		-3.000498	-27.012957	26.008969	-1.961897	1.961897	inf
83		-1.961897	-8.589519	10.547116	-1.147502	1.147502	inf
84		-1.147502	-3.363482	2.950280	-0.007446	0.007446	inf
85		-0.007446	-2.992554	-0.999834	-3.000498	3.000498	inf
86		-3.000498	-27.012957	26.008969	-1.961897	1.961897	inf
87		-1.961897	-8.589519	10.547116	-1.147502	1.147502	inf
88		-1.147502	-3.363482	2.950280	-0.007446	0.007446	inf
89		-0.007446	-2.992554	-0.999834	-3.000498	3.000498	inf
90		-3.000498	-27.012957	26.008969	-1.961897	1.961897	inf
91		-1.961897	-8.589519	10.547116	-1.147502	1.147502	inf
92		-1.147502	-3.363482	2.950280	-0.007446	0.007446	inf
93		-0.007446	-2.992554	-0.999834	-3.000498	3.000498	inf
94		-3.000498	-27.012957	26.008969	-1.961897	1.961897	inf
95		-1.961897	-8.589519	10.547116	-1.147502	1.147502	inf
96		-1.147502	-3.363482	2.950280	-0.007446	0.007446	inf
97		-0.007446	-2.992554	-0.999834	-3.000498	3.000498	inf
98		-3.000498	-27.012957	26.008969	-1.961897	1.961897	inf
99		-1.961897	-8.589519	10.547116	-1.147502	1.147502	inf
100		-1.147502	-3.363482	2.950280	-0.007446	0.007446	inf
*
THE ROOT OF EQUATION IS -0.007446