//Newton
#include <bits/stdc++.h>
using namespace std;
double f(double x) {
return x*x*x - 2*x - 5;
}
double f_derivative(double x) {
return 3*x*x - 2;
}
int main() {
double x0, x1, E;
int iteration = 0;
cout << "Enter initial guess (x0): ";
cin >> x0;
cout << "Enter tolerance (E): ";
cin >> E;
cout<<"Iteration\t\tX1\t\t\tFX1\t\t\tF'X1"<<endl;
do {
double f0 = f(x0);
double fprime = f_derivative(x0);
if (fprime == 0) {
cout << "Mathematical Error! Derivative is zero.\n";
return 0;
}
x1 = x0 - (f0 / fprime);
double f1=f(x1);
double f_prime=f_derivative(x1);
iteration++;
cout << iteration <<"\t\t"<< x1<<"\t\t\t"<<f1<<"\t\t\t"<<f_prime << endl;
cout<<fixed<<setprecision(5);
if (fabs((x1 - x0) / x1) < E)
break;
x0 = x1;
} while (true);
cout << "\nThe root is approximately: " << x1 << endl;
cout << "Total iterations: " << iteration << endl;
return 0;
}
Ly9OZXd0b24gCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpkb3VibGUgZihkb3VibGUgeCkgewogICAgcmV0dXJuIHgqeCp4IC0gMip4IC0gNTsKfQoKCmRvdWJsZSBmX2Rlcml2YXRpdmUoZG91YmxlIHgpIHsKICAgIHJldHVybiAzKngqeCAtIDI7Cn0KCmludCBtYWluKCkgewogICAgZG91YmxlIHgwLCB4MSwgRTsKICAgIGludCBpdGVyYXRpb24gPSAwOwoKICAgIGNvdXQgPDwgIkVudGVyIGluaXRpYWwgZ3Vlc3MgKHgwKTogIjsKICAgIGNpbiA+PiB4MDsKICAgIGNvdXQgPDwgIkVudGVyIHRvbGVyYW5jZSAoRSk6ICI7CiAgICBjaW4gPj4gRTsKICAgIGNvdXQ8PCJJdGVyYXRpb25cdFx0WDFcdFx0XHRGWDFcdFx0XHRGJ1gxIjw8ZW5kbDsKICAgIGRvIHsKICAgICAgICBkb3VibGUgZjAgPSBmKHgwKTsKICAgICAgICBkb3VibGUgZnByaW1lID0gZl9kZXJpdmF0aXZlKHgwKTsKCiAgICAgICAgaWYgKGZwcmltZSA9PSAwKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIk1hdGhlbWF0aWNhbCBFcnJvciEgRGVyaXZhdGl2ZSBpcyB6ZXJvLlxuIjsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQoKICAgICAgICB4MSA9IHgwIC0gKGYwIC8gZnByaW1lKTsKICAgICAgICBkb3VibGUgZjE9Zih4MSk7CiAgICAgICAgZG91YmxlIGZfcHJpbWU9Zl9kZXJpdmF0aXZlKHgxKTsKICAgICAgICBpdGVyYXRpb24rKzsKCiAgICAgICAgY291dCA8PCBpdGVyYXRpb24gPDwiXHRcdCI8PCB4MTw8Ilx0XHRcdCI8PGYxPDwiXHRcdFx0Ijw8Zl9wcmltZSA8PCBlbmRsOwogICAgICAgIGNvdXQ8PGZpeGVkPDxzZXRwcmVjaXNpb24oNSk7CiAgICAgICAgaWYgKGZhYnMoKHgxIC0geDApIC8geDEpIDwgRSkKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIHgwID0geDE7CgoKICAgIH0gd2hpbGUgKHRydWUpOwoKICAgIGNvdXQgPDwgIlxuVGhlIHJvb3QgaXMgYXBwcm94aW1hdGVseTogIiA8PCB4MSA8PCBlbmRsOwogICAgY291dCA8PCAiVG90YWwgaXRlcmF0aW9uczogIiA8PCBpdGVyYXRpb24gPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=