已知方程x^3+2x^2-3x-6=0用二分法求方程有幾個實根 像這種題目應該怎麼找區間,難道就是一個一個的試嗎?

已知方程x^3+2x^2-3x-6=0用二分法求方程有幾個實根 像這種題目應該怎麼找區間,難道就是一個一個的試嗎?


驗根相除法,可以看出有一根為-2,則令(x^3+2x2-3x-6)/(x+2)=(x^2-3)可得x^3+2x2-3x-6=(x+2)(x^2-3)=(x+2)(x+根號3)(x-根號3)易得x有三解-2、-根號3、根號3具體的區間可帶入中間值



C程式實驗:用二分法求下麵方程2X^3-4X^2+3X-6=0的根,要求誤差小於0.00001


不懂可以再解釋,感覺答案滿意請點採納,不要點關閉提問
#include
#include
double f(double x)
{
return 2*x*x*x-4*x*x+3*x-6;
}
main()
{
double left=-100,right=100,mid;
double ans;
do
{
mid=(left+right)/2;
ans=f(mid);
if(ans>0)
right=mid;
else if(ans1e-5);
printf(“%lf\t%lf\n”,mid,ans);
system(“pause”);
}



編寫程式,用二分法求方程2x3-4x2+3x-6=0在(-10,10)之間的根.
提示:
用do-while語句實現.
二分法的計算步驟:
準備計算f(x)在有根區間[a,b]端點處的值f(a),f(b)
二分計算f(x)在區間中點(a+b)/2處的值f[(a+b)/2]
判斷若f[(a+b)/2]=0,則即是根,計算過程結束.
否則,檢測:
若f[(a+b)/2]與f(a)异號,則根位於區間[a,(a+b)/2]內,這時以(a+b)/2代替b;
若f[(a+b)/2]與f(a)同號,則根位於區間[(a+b)/2,b]內,這時以(a+b)/2代替a;
反復執行步驟2和3,直到區間[a,b]長度縮小到允許的誤差範圍之內,此時中點(a+b)/2即為所求的根.
下邊是我做的,不知道哪裡出錯了.
#include
#include
void main()
{
float a=-10.0;
float b=10.0;
float fc,fa,c;
c=(a+b)/2;
fc=2*pow(c,3)-4*pow(c,2)+3*c-6;
fa=2*pow(a,3)-4*pow(a,2)+3*a-6;
if(fc==0)
printf(“the result is %lf.\n”,c);
else
{
do
{
c=(a+b)/2;
if(fa*fc0.1e-6);
printf(“the result is %lf.\n”,c);
}
}


#include
using namespace std;
double p(double x)
{
return 2*x*x*x-4*x*x+3*x-6;
}
int main()
{
double a,b;
cin >> a >> b;
double fa = p(a),fb = p(b),fm;
do
{
fm = p((a+b)/2);
if(fm==0)break;
if(fm*fa