用二分法做一个程序,求f(x)=x3+4x2-10=0在[1,2]内的一个实根,且要求满足精度|x*-xn|<0.5×10-5详细解释

2025-02-24 08:14:01
推荐回答(1个)
回答1:

//我们已经知道 f(1)<0,f(2)>0 

double Xmid,Xfront,Xmid;
Xmid=(1+2)/2;
Xfront=1;
Xbehind=2;
Xmid=(1+2)/2;
while(abs(Xfront-Xbehind)>0.5*e-5)        //当|x*-xn|<0.5×10-5不成立的时候就循环迭代计算
{
    if(Xmid*Xmid*Xmid+4*Xmid*Xmid-10<0) //判断该往哪边迭代。
        {
           Xmid=(Xmid+Xbehind)/2;     //小于0,说明Xmid在这个x*的前面,
           Xfront=Xmid;               //所以把前面的那个移到Xmid
         }
    else
         { 
           Xmid=(Xmid+Xfront)/2;     //同理
           Xbehind=Xmid;
          }
}