
大侠指教啊!为什末按书上打的c++程序会是错的?题目是用二分法求2x*x*x-4*x*x+3*x-6=0在(-10,10)的解
#include<iostream.h>#include<math.h>voidmain(){floatx0,x1,x2,fx0,fx1,fx2;do{cout<<"en...
#include<iostream.h>
#include<math.h>
void main()
{
float x0,x1,x2,fx0,fx1,fx2;
do{
cout<<"entre x1,x2:";
cin>>x1>>x2;
fx1=2*x1*x1*x1-4*x1*x1+3*x1-6;
fx2=2*x2*x2*x2-4*x2*x2+3*x2-6;
}while (fx1*fx2>0);
do{
x0=(x1+x2)/2;
fx0=2*x0*x0*x0-4*x0*x0+3*x0-6;
if((fx0*fx1)<0)
{x2=x0;
fx2=fx0;
}
else
{x1=x0;
fx1=fx0;
}
}while(fabs((double)fx0)>=1e-5);
cout<<x0<<"\n";
} 展开
#include<math.h>
void main()
{
float x0,x1,x2,fx0,fx1,fx2;
do{
cout<<"entre x1,x2:";
cin>>x1>>x2;
fx1=2*x1*x1*x1-4*x1*x1+3*x1-6;
fx2=2*x2*x2*x2-4*x2*x2+3*x2-6;
}while (fx1*fx2>0);
do{
x0=(x1+x2)/2;
fx0=2*x0*x0*x0-4*x0*x0+3*x0-6;
if((fx0*fx1)<0)
{x2=x0;
fx2=fx0;
}
else
{x1=x0;
fx1=fx0;
}
}while(fabs((double)fx0)>=1e-5);
cout<<x0<<"\n";
} 展开
展开全部
//将
while(fabs((double)fx0)>=1e-5);
//改为(5改4),原因是精度达不到,死循环:
while(fabs((double)fx0)>=1e-4);
while(fabs((double)fx0)>=1e-5);
//改为(5改4),原因是精度达不到,死循环:
while(fabs((double)fx0)>=1e-4);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询