#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
// ফাংশন f(x) = 2x² - x - 8
double f(double x) {
return 2 * x * x - x - 8;
}
int main() {
double x1, x2, x0, f1, f2, f0, error;
int iteration = 1;
const double EPSILON = 0.0001;
cout << "Enter the value of x1: ";
cin >> x1;
cout << "Enter the value of x2: ";
cin >> x2;
f1 = f(x1);
f2 = f(x2);
// প্রাথমিক অনুমানগুলোর মধ্যে ফাংশনের মানের চিহ্ন বিপরীত কিনা পরীক্ষা
if (f1 * f2 > 0) {
cout << "The initial guesses do not bracket any root." << endl;
return 0;
}
cout << "\nIteration x1 x2 x0 f(x1) f(x2) f(x0)\n";
do {
// মধ্যবিন্দু নির্ণয়
x0 = (x1 + x2) / 2.0;
f0 = f(x0);
// ফলাফল প্রদর্শন
cout << fixed << setprecision(6);
cout << iteration << " "
<< x1 << " " << x2 << " "
<< x0 << " "
<< f1 << " "
<< f2 << " "
<< f0 << endl;
// নতুন সীমা নির্ধারণ
if (f1 * f0 < 0) {
x2 = x0;
f2 = f0;
} else {
x1 = x0;
f1 = f0;
}
// ত্রুটি নির্ণয়
error = fabs((x2 - x1) / x2);
iteration++;
} while (error > EPSILON);
cout << "\nApproximate root = " << x0 << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGNtYXRoPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8g4Kar4Ka+4KaC4Ka24KaoIGYoeCkgPSAyeMKyIC0geCAtIDgKZG91YmxlIGYoZG91YmxlIHgpIHsKICAgIHJldHVybiAyICogeCAqIHggLSB4IC0gODsKfQoKaW50IG1haW4oKSB7CiAgICBkb3VibGUgeDEsIHgyLCB4MCwgZjEsIGYyLCBmMCwgZXJyb3I7CiAgICBpbnQgaXRlcmF0aW9uID0gMTsKICAgIGNvbnN0IGRvdWJsZSBFUFNJTE9OID0gMC4wMDAxOwoKICAgIGNvdXQgPDwgIkVudGVyIHRoZSB2YWx1ZSBvZiB4MTogIjsKICAgIGNpbiA+PiB4MTsKICAgIGNvdXQgPDwgIkVudGVyIHRoZSB2YWx1ZSBvZiB4MjogIjsKICAgIGNpbiA+PiB4MjsKCiAgICBmMSA9IGYoeDEpOwogICAgZjIgPSBmKHgyKTsKCiAgICAvLyDgpqrgp43gprDgpr7gpqXgpq7gpr/gppUg4KaF4Kao4KeB4Kau4Ka+4Kao4KaX4KeB4Kay4KeL4KawIOCmruCmp+CnjeCmr+CnhyDgpqvgpr7gpoLgprbgpqjgp4fgprAg4Kau4Ka+4Kao4KeH4KawIOCmmuCmv+CmueCnjeCmqCDgpqzgpr/gpqrgprDgp4DgpqQg4KaV4Ka/4Kao4Ka+IOCmquCmsOCngOCmleCnjeCmt+CmvgogICAgaWYgKGYxICogZjIgPiAwKSB7CiAgICAgICAgY291dCA8PCAiVGhlIGluaXRpYWwgZ3Vlc3NlcyBkbyBub3QgYnJhY2tldCBhbnkgcm9vdC4iIDw8IGVuZGw7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgY291dCA8PCAiXG5JdGVyYXRpb24gICAgeDEgICAgICAgICAgICB4MiAgICAgICAgICAgIHgwICAgICAgICAgICAgZih4MSkgICAgICAgIGYoeDIpICAgICAgICBmKHgwKVxuIjsKCiAgICBkbyB7CiAgICAgICAgLy8g4Kau4Kan4KeN4Kav4Kas4Ka/4Kao4KeN4Kam4KeBIOCmqOCmv+CmsOCnjeCmo+Cmr+CmvAogICAgICAgIHgwID0gKHgxICsgeDIpIC8gMi4wOwogICAgICAgIGYwID0gZih4MCk7CgogICAgICAgIC8vIOCmq+CmsuCmvuCmq+CmsiDgpqrgp43gprDgpqbgprDgp43gprbgpqgKICAgICAgICBjb3V0IDw8IGZpeGVkIDw8IHNldHByZWNpc2lvbig2KTsKICAgICAgICBjb3V0IDw8IGl0ZXJhdGlvbiA8PCAiICAgICAgICAgICAgIgogICAgICAgICAgICAgPDwgeDEgPDwgIiAgICAgIiA8PCB4MiA8PCAiICAgICAiCiAgICAgICAgICAgICA8PCB4MCA8PCAiICAgICAiCiAgICAgICAgICAgICA8PCBmMSA8PCAiICAgICAiCiAgICAgICAgICAgICA8PCBmMiA8PCAiICAgICAiCiAgICAgICAgICAgICA8PCBmMCA8PCBlbmRsOwoKICAgICAgICAvLyDgpqjgpqTgp4Hgpqgg4Ka44KeA4Kau4Ka+IOCmqOCmv+CmsOCnjeCmp+CmvuCmsOCmowogICAgICAgIGlmIChmMSAqIGYwIDwgMCkgewogICAgICAgICAgICB4MiA9IHgwOwogICAgICAgICAgICBmMiA9IGYwOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHgxID0geDA7CiAgICAgICAgICAgIGYxID0gZjA7CiAgICAgICAgfQoKICAgICAgICAvLyDgpqTgp43gprDgp4Hgpp/gpr8g4Kao4Ka/4Kaw4KeN4Kaj4Kav4Ka8CiAgICAgICAgZXJyb3IgPSBmYWJzKCh4MiAtIHgxKSAvIHgyKTsKICAgICAgICBpdGVyYXRpb24rKzsKICAgIH0gd2hpbGUgKGVycm9yID4gRVBTSUxPTik7CgogICAgY291dCA8PCAiXG5BcHByb3hpbWF0ZSByb290ID0gIiA8PCB4MCA8PCBlbmRsOwogICAgcmV0dXJuIDA7Cn0K