数值分析:用二分法求方程f(x)=x^3+4*(x^2)-10在区间[1,1.5]上的根,要求求出具有3位有效数的近似根。

我的程序如下:#include<stdio.h>floatf(floatx){returnx*x*x+4*x*x-10;}voidmain(){floata,b,c;a=... 我的程序如下:
#include<stdio.h>
float f(float x)
{
return x*x*x+4*x*x-10;
}
void main()
{
float a,b,c;
a=1.0;
b=1.5;
for(;;)
{
if(b-a>=0.005)
{
c=(a+b)/2;
if(f(a)*f(c)==0)
break;
else if(f(a)*f(c)<0)
b=c;
else if(f(a)*f(c)>0)
a=c;
}
else
break;
}
printf("二分结果为%f\n",c);
printf("保留三位有效数字为%0.2f\n",c);
}
我想知道我的程序是否正确,如果正确的话那么那个跳出循环的判断为何是if(b-a>=0.005),为何不是if(b-a>=0.01),或者它有固定的算法,下面是我的程序运行结果图,希望大家给予指点,谢谢大家啦!
展开
 我来答
淦海瑶s1
2011-11-22 · TA获得超过3646个赞
知道大有可为答主
回答量:3341
采纳率:100%
帮助的人:795万
展开全部
你的程序我感觉是对的,我没有运行看看啊
你那个if判断,牵扯到数学问题,不在程序中讨论,其实那个都可以跳出循环,只是精度问题

就是感觉的你的算法也就是程序思路不怎么好
for(;b-a>=0.005;)
{
c=(a+b)/2;
if(f(c)==0)
break;
if(f(a)*f(c)>0)
a=c;
else
b=c;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式