例题
用二分法求方程
在(a,b)之间的根.答案保留六位小数。
(提示:二分,并令
)
思路
是不是要呕吐了
给公式
令
①
则
②
③
④
当mid小于用户自定义最小值(本题为1e-6)输出f(mid)⑤否则按上面规则二分
放代码演示一下
有兴趣的去搜索一下
代码
#include<bits/stdc++.h>
using namespace std;
double f(double x){
return 2.0*x*x*x-4.0*x*x+3*x-6;
}
int main(){
double left,right,mid;
cin>>left>>right;
mid=(left+right)/2;//①
while(fabs(f(mid))>1e-6){
if(f(left)*f(mid)>0) left=mid;//②
if(f(right)*f(mid)>0) right=mid;//③
mid=(left+right)/2;//④
}
printf("%.6lf",mid);//⑤
return 0;
}