#include <bits/stdc++.h>
const double eps = 1e-6; //定义我们计算的精度
double f(double x) //定义我们的函数
{
return 2*x*x*x+(-4)*x*x+3*x-6;
}
int main()
{
double m=-10,n=10,i;//求根区间[m,n],中点i
while(fabs(m-n)>eps)
{
i=(m+n)/2.0;//i是中点,要在循环里面写!
if(f(i)*f(m)<0)
{
n=i; //修正区间,将[m,n]换成[m,i]
}
else if(f(i)*f(n)<0)
{
m=i;//修正区间,将[m,n]换成[i,n]
}
}
printf("%.6lf",i);
}
05-20
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交