用二分法求方程 2x^3-4x^2+3x=0 在(-10,10)附近的根 请给详细程序 我是新手 一点都不知道

帮帮我这个菜鸟 刚开的号 没什么积分 下次定当重谢
谢谢你的回答 但我用的是C语言 那个"IOSTREAM.H"打不开 能不能不用啊????
急 急 只要能运行 就是最佳了

首先判断X在(-10,10)是不是单调增加的,如果不是的话就不能用二分法。
另外,你的方程是不是写错了,估计应该是2x^3-4x^2+3=0把,不然一眼就能看出0就是你写的方程的解了啊!
如果把方程改成2x^3-4x^2+3=0的话,源程序为:
#include <stdio.h>
#include <math.h>
#define R 1e-5 //这里设定阈值为0.00001

double f(double n)
{
return (2*n*n*n-4*n*n+3);
}

main()
{
double x1=-10.0;
double x2=10.0;
double t;
do
{
t=(x1+x2)/2;
if(f(t)>0)
{
x2=t;
}
else
{
x1=t;
}
}while(fabs(f(t))>R);
printf("解为:%lf\nf(t)为:%lf\n",t,f(t));
}

结果为:
解为:-0.739908
f(t)为:-0.000003
Press any key to continue

补充:我是用的C,编译通过了的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-06-04
#include<math.h>
main()
{ float x0,x1,x2,fx0,fx1,fx2;
do{ printf("please input x1 x2 vaue:");
scanf("%f,%f",&x1,&x2);
fx1=x1*((2*x1-4)*x1+3);
fx2=x2*((2*x2-4)*x2+3);
}while(fx1*fx2>0);
do
{x0=(x1+x2)/2;
fx0=x0*((2*x0-4)*x0+3);
if(fx0*fx1<0)
{x2=x0;fx2=fx0;}
else
{x1=x0;fx1=fx0;}
} while(fabs(fx0)>=1e-5);
printf("The fachengdegen is=%6.2f\n",x0);
}本回答被提问者采纳
第2个回答  2007-06-03
//用二分法求方程的根,方法(1):

#include<iostream.h>
#include<math.h>
float f(float x)
{ return (2*x*x*x-4*x*x+3*x) ;}

main()
{
double x1,x2,x,err,root;
cout<<"请输入精度";
cin>>err;
cout<<"请输入上界";
cin>>x1;
cout<<"请输入下界";
cin>>x2;

while(fabs(x1-x2)>err) //求根
{
x=(x1+x2)/2;

if(f(x)*f(x1)<0)
x2=x;
else
x1=x;
}

root=(x1+x2)/2;

cout<<"The root is:"<<root<<endl;

}

--------------------------------------------------

//用二分法求方程的根,方法(2):

#include<iostream.h>
#include<math.h>
float f(float x)
{ float y;
y=2*x*x*x-4*x*x+3*x;
return(y);
}
main()
{
float t,temp,x1=-10,x2=10;

t=(x1+x2)/2;
while((f(x2)-f(x1))>1e-3)
{
t=(x1+x2)/2;
temp=f(t);
if(temp==0)
break;
else if (temp<0)
x1=t;
else
x2=t;
}
cout<<"该方程在区间(-10,+10)内的根为"<<t<<endl;

return 0;
}

c语言二分法求方程根
解:x1<=x0=(x1+x2)\/2<=x2 程序:include<stdio.h> include<math.h> int main(){ float x0,x1,x2,fx0,fx1,fx2;do { printf("输入x1,x2的值:");scanf("%f,%f", &x1, &x2);fx1 = 2*x1*x1*x1 - 4 * x1*x1 + 3 * x1 - 6;fx2 = 2 *x2*x2*x2 - 4 *x2*...

C语言作业:二分法求方程2x^3-4x^2+3x-6=0在(-10,10)之间的根 中遇到的...
初始 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 (){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-...

...用二分法求一元二次方程2x3-4x2+3x-6=0在(-10,10)区间的根 什么是二...
二分法其实很简单就比如这个题:先令X等于3,得等号左边大于0.再令X等于-3,得等号左边小于0.然后取3和-3的平均值0,令X等于0,得等号左边小于0,再去0和3的平均值继续算下去,就是在两个使其异号的数之间一直减小其范围

C语言:用二分法求方程的根,求具体可用程序;
用二分法求下面方程在(-10, 10)之间的一个根。 2x3 - 4x2 + 3x - 6 = 0 输入:一个小于1的非负实数e,它的值表示所能允许的误差输出:一个实数,其值为求得的一个根,要求精确到小数点后8位。 若该区间上没有根,则输出“No Solution” 例如:输... 展开 aceyao94 | 浏览4150 次 |举报 我有更好...

c语言用二分法求方程(-10,10)之间的根
float getvalue(float x){ return 2*x*x*x-4*x*x+3*x-6;} void main(){ float a=-9.8,b=10.2,c;c=(a+b)\/2;while(fabs(getvalue(c))>0.00001 && fabs(a-b)>0.00001){ if(getvalue(c)*getvalue(b)<0) a=c;if(getvalue(a)*getvalue(c)<0) b=c;c=(a+b)\/2...

怎样用c语言编程解较复杂的方程
用牛顿迭代法我给一个例子求下面方程在1.5附近的根 2x^3-4x^2+3x-6=0 答案如下:include "stdio.h"include<math.h> void main(){ double f(double x);double x1=-10.0,x2=10.0,xx;while(1){ xx=(x1+x2)\/2;if(fabs(f(xx)-0)<1e-5)break;if(f(xx)>0)x2=xx;if(f(...

求f(x)=2x^3的导数及二阶,三阶,四阶,五阶导数,不只要结果,需要的是求导...
f'(x)=(2x⊃3;)' = 2(x⊃3;)' = 2*3x⊃2;=6x⊃2;f''(x)=(6x⊃2;)' = 6(x⊃2;)'=6*2x =12xf'''(x)=(12x)'=12f(x)4阶导 = (12)'=0f(x)5阶导 = (0)'=0等于0是因为常数的导数为0 本回答被提问者采纳 已赞过 已踩过< 你对这个回答的评价是? 评论 ...

用二分法求方程x3+4x2-10=0在[1,2]之间的根,要求精度为0.005
{ x2=x;y2=y;} else { x1=x;y1=y;} }while(fabs(fun(x))<5e-3);return x;} void main(){ float a,b,f1,f2,x;do { printf("输入a b\\n");scanf("%f%f",&a,&b);f1=fun(a);f2=fun(b);}while(f1*f2>=0);x=root(a,b);printf("%f",x);getch();} ...

用二分法求2*x*x*x-4*x*x+3*x-6=0在(-10,10)之间的根。(用c语言...
return ((2*x-4)*x+3)*x-6;} double root(double f,double t){ double mid=(f+t)\/2.0,s=calc(mid);while (fabs(s)>1e-6){ if (s>0) t=mid;else f=mid;mid=(f+t)\/2.0;s=calc(mid);} return mid;} int main(){ printf("%lf\\n",root(-10.0,10.0));return ...

用C语言,运用二分法,求函数零点。
{return xx*xx*xx+xx*xx-3*xx-3;} double hs2(double xx)\/\/函数f(x)=lnx+x {return log(xx)+xx;} void main(){ printf("用二分法求方程x^3+x^2-3x-3=0在1.5附近的根\\n");eff(1.0,2.0,hs1);printf("用二分法求方程lnx+x在0.5附近的根\\n");eff(0.0,1.0,hs2);}...

相似回答