//Falsi
#include<bits/stdc++.h>
using namespace std;
double f(double x){
return pow(x,3) - 4;
}
int main(){
double x1 = 1.0;
double x2 = 3.0;
double x0;
double f1=f(x1);
double f2=f(x2);
cout<<"Iteration\t"<<"x0\t\t"<<"x1\t\t"<<"x2\t\t"<<"f0\t\t"<<"f1\t\t"<<"f2\n";
if (f1*f2>0){
cout<<"Invalid! do not bracket any root in this interval."<<endl;
return 1;
}
for(int i=0;i<3;i++){
x0 = x1 - (f(x1)*(x2-x1)) / (f(x2)-f(x1));
double f0 = f(x0);
cout<<i+1<<"\t"<<x0<<"\t\t\t"<<x1<<"\t\t\t"<<x2<<"\t\t\t"<<f0<<"\t\t\t"<<f1<<"\t\t\t"<<f2<<"\n";
if (f0==0){
cout<<"X0 is the root of the equation "<<x0<<endl;
break;
}
if(f1*f2<0){
x2 = x0;
f2 = f(x2);
}
else{
x1 = x0;
f1= f(x1);
}
cout<<fixed<<setprecision(5);
}
cout<<"After 3 iteration approximate root is :"<<x0<<endl;
return 0;
}
Ci8vRmFsc2kKI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpkb3VibGUgZihkb3VibGUgeCl7CgpyZXR1cm4gcG93KHgsMykgLSA0Owp9CmludCBtYWluKCl7CmRvdWJsZSB4MSA9IDEuMDsKZG91YmxlIHgyID0gMy4wOwpkb3VibGUgeDA7CmRvdWJsZSBmMT1mKHgxKTsKZG91YmxlIGYyPWYoeDIpOwpjb3V0PDwiSXRlcmF0aW9uXHQiPDwieDBcdFx0Ijw8IngxXHRcdCI8PCJ4Mlx0XHQiPDwiZjBcdFx0Ijw8ImYxXHRcdCI8PCJmMlxuIjsKaWYgKGYxKmYyPjApewogICAgY291dDw8IkludmFsaWQhIGRvIG5vdCBicmFja2V0IGFueSByb290IGluIHRoaXMgaW50ZXJ2YWwuIjw8ZW5kbDsKICAgIHJldHVybiAxOwp9CmZvcihpbnQgaT0wO2k8MztpKyspewogICAgIHgwID0geDEgLSAoZih4MSkqKHgyLXgxKSkgLyAoZih4MiktZih4MSkpOwogICAgZG91YmxlIGYwID0gZih4MCk7CiAgICBjb3V0PDxpKzE8PCJcdCI8PHgwPDwiXHRcdFx0Ijw8eDE8PCJcdFx0XHQiPDx4Mjw8Ilx0XHRcdCI8PGYwPDwiXHRcdFx0Ijw8ZjE8PCJcdFx0XHQiPDxmMjw8IlxuIjsKICAgIGlmIChmMD09MCl7CiAgICAgICAgY291dDw8IlgwIGlzIHRoZSByb290IG9mIHRoZSBlcXVhdGlvbiAiPDx4MDw8ZW5kbDsKICAgICAgICBicmVhazsKICAgIH0KICAgIGlmKGYxKmYyPDApewogICAgICAgIHgyID0geDA7CiAgICAgICAgZjIgPSBmKHgyKTsKICAgIH0KICAgIGVsc2V7CiAgICAgICAgeDEgPSB4MDsKICAgICAgICBmMT0gZih4MSk7CiAgICB9CiAgICBjb3V0PDxmaXhlZDw8c2V0cHJlY2lzaW9uKDUpOwoKfQpjb3V0PDwiQWZ0ZXIgMyBpdGVyYXRpb24gYXBwcm94aW1hdGUgcm9vdCBpcyA6Ijw8eDA8PGVuZGw7CnJldHVybiAwOwp9Cg==