#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
double f(double x){ return pow(x, 3) + 10*x - 20; }
double binarySearch(double lef = 1, double righ = 2, double precision = 0.0001){
double mid = 0;
double lef_ = 0;
double righ_ = 0;
double mid_ = 0;
while(righ - lef > precision){
mid = (righ + lef) / 2;
lef_ = f(lef);
righ_ = f(righ);
mid_ = f(mid);
if(mid_ == 0){break;}
else if(lef_ * mid_ > 0){ lef = mid; }
else if(righ_ * mid_ > 0){ righ = mid; }
else{ cout<<"区间内无唯一解"<<endl; }
}
return (lef + righ) / 2;
}
int main(){
double result = binarySearch();
cout<<fixed<<setprecision(16)<<"解:"<<result<<endl;
return 0;
}
【计算方法实验】实验1:二分法
最新推荐文章于 2023-10-11 18:50:04 发布