用二分法求方程 2x^3-4x^2+3x=0 在(-10,10)附近的根

{floatx1,x2,t;x1=-9.8;x2=10.2;while(fabs(x2-x1)>1e-5){t=(x1+x2)/2;if((2*t*t*t-4*t*t+3... {
float x1,x2,t;
x1=-9.8;x2=10.2;
while(fabs(x2-x1)>1e-5)
{t=(x1+x2)/2;
if((2*t*t*t-4*t*t+3*t-6)*(2*x1*x1*x1-4*x1*x1+3*x1-6)<=0)
x2=t;else x1=t;}printf("%f",t);

}我的过程哪错了啊
展开
 我来答
蓝云风翼
2009-04-16 · TA获得超过430个赞
知道小有建树答主
回答量:196
采纳率:0%
帮助的人:220万
展开全部
while语句应该在if语句后执行
应用do while下面是我的程序,你输入初值就可以了

#include <iostream>
#include <stdio.h>
#include <math.h>
#define null 0
double fx(double); //fx函数
void main()
{
double xa(null),xb(null),xc(null);
do
{
printf("请输入一个范围x0 x1:");
std::cin>>xa>>xb; //输入xa xb的值
printf("%f %f",xa,xb);
}
while(fx(xa)*fx(xb)>=0);//判断输入范围内是否包含函数值0

do
{
if(fx((xc=(xa+xb)/2))*fx(xb)<0)//二分法判断函数值包含0的X取值区间
{
xa=xc;
}
else
{
xb=xc;
}
}
while(fx(xc)>1e-5||fx(xc)<-1e-5);//判断x根是否在接近函数值0的精确范围内

printf("\n 得数为:%f",xc);
}
double fx(double x)
{
return 2*x*x*x-4*x*x+3*x-6;
}
hjlcom
2009-04-19
知道答主
回答量:16
采纳率:0%
帮助的人:0
展开全部
((2*t*t*t-4*t*t+3*t-6)*(2*x1*x1*x1-4*x1*x1+3*x1-6)<=0)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式