C语言作业:二分法求方程2x^3-4x^2+3x-6=0在(-10,10)之间的根 中遇到的问题

问题描述:

C语言作业:二分法求方程2x^3-4x^2+3x-6=0在(-10,10)之间的根 中遇到的问题
# include
# include
int main ()
{
double a,b,c,d;
a=10;
b=-10;
c=(a+b)/2;
d=2*c*c*c-4*c*c+3*c-6;
while(fabs(d)>1e-8)
{
if(d
1个回答 分类:综合 2014-11-26

问题解答:

我来补答
界限处理不对对于区间[b, a]初始f(a) > 0f(b) < 0对于c=(a+b)/2如果f(c)>0 则继续操作[b,c]否则操作[c,a]这个是二分法的核心所以代码应该是# include <stdio.h>
# include <math.h>
int main ()
{
\x09double a,b,c,d;
\x09a=10;
\x09b=-10;
\x09c=(a+b)/2;
\x09d=2*c*c*c-4*c*c+3*c-6;
\x09while(fabs(d)>1e-8)
\x09{
\x09\x09if(d<0)
\x09\x09{
\x09\x09\x09b=c;
\x09\x09\x09c=(a+b)/2;
\x09\x09\x09d=2*c*c*c-4*c*c+3*c-6;
\x09\x09}
        else
\x09\x09{
\x09\x09\x09a=c;
\x09\x09\x09c=(a+b)/2;
\x09\x09\x09d=2*c*c*c-4*c*c+3*c-6;
\x09\x09}
\x09}
    printf("The answer is %lf",c);
\x09return 0;
}
 
 
展开全文阅读
剩余:2000
上一页:示意图也请画出
下一页:拜托详细解答