永发信息网

用二分法求2*x*x*x-4*x*x+3*x-6=0在(-10,10)之间的根。(用c语言编写)

答案:2  悬赏:30  手机版
解决时间 2021-02-05 12:37
  • 提问者网友:浪荡绅士
  • 2021-02-05 04:01
用二分法求2*x*x*x-4*x*x+3*x-6=0在(-10,10)之间的根。(用c语言编写)
最佳答案
  • 五星知识达人网友:怙棘
  • 2021-02-05 05:19
楼上的类型不太好,改用实型的,不然会出错(实数根无法输出)。
还有cout是C++的吧,楼主要的是C
附上我的:
#include
#include
double calc(double x)
{
return ((2*x-4)*x+3)*x-6;
}
double root(double f,double t)
{
double mid=(f+t)/2.0,s=calc(mid);
while (fabs(s)>1e-6)
{
if (s>0) t=mid;
else f=mid;
mid=(f+t)/2.0;
s=calc(mid);
}
return mid;
}
int main()
{
printf("%lf\n",root(-10.0,10.0));
return 0;
}

运行结果:2.000000
全部回答
  • 1楼网友:污到你湿
  • 2021-02-05 05:45
double f(int x)
{
return 2*x*x*x-4*x*x+3*x-6;
}
double sol(int x,int y)
{
if (y-x<0.00001) return x/2+y/2;
if (f(x/2+y/2)>0)return sol(x,y/2+x/2);
else return sol(y/2+x/2,y);
}
main()
{cout<
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯