#include<iostream>
using namespace std;
double fun(double x){
return x*x*x + 4*x*x - 10;
}
int times(double a, double b, double e){
int t, s = 1;
for(t=0; (b-a)/e>s; t++){
s *= 2;
}
return t;
}
int main(){
double a, b, e;
cout <<"please input a, b and e"<<endl;
cin >> a >> b >> e;
double x = (a+b)/2;
int t = times(a, b, 0.0005);
while(t--){
x = (a+b)/2;
if(fun(x)==0){
cout << x << endl;
break;
}else if(fun(x)*fun(a) < 0){
b = x;
cout << "(" << a << "," << b << ")" << endl;
continue;
}else if(fun(x)*fun(b) < 0){
a = x;
cout << "(" << a << "," << b << ")" << endl;
continue;
}
}
}
数值计算方法----二分法
最新推荐文章于 2024-06-12 20:44:27 发布