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

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 11:15:14
C语言作业:二分法求方程2x^3-4x^2+3x-6=0在(-10,10)之间的根中遇到的问题#include#includeintmain(){doublea,b,c,d;a=10;b=-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
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

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

界限处理不对

对于区间[b, a]

初始

f(a) > 0

f(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;
}