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