HeyVV
2019-11-26 16:09
采纳率: 0%
浏览 310

C++弦截法求方程的根 求大佬帮忙看看代码哪里出错了

求方程x^3-2x^2+x-2=0在[1,3]之间的根。
答案应该是2,但我的运行结果是1.15366e+029

#include  <iostream> 
#include <math.h> 
using  namespace  std; 
float f(float x)
{
    float y;
    y=x*x*x-2*x*x+x-2;
    return y;
}
float pointx(float x1,float x2)
{
    float x0;
    x0=x1*f(x2)-x2*f(x1)/f(x2)-f(x1);
    return x0;
}
float root(float x1,float x2)
{
    float x0;
    do
    {
        x0=pointx(x1,x2);
        if(f(x0)*f(x1)>0)
        {x1=x0;
        }
        else x2=x0;
    }
    while((fabs(f(x0)>=1e-6))||(fabs(f(x0)<=-1e-6)));
    return x0;
}
  main()
{
   float x0;
   x0=root(1,3);
   cout<<x0<<endl;
}
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • QiQaWgYu 2019-11-26 17:33

    pointx里的

    x0 = x1 - f(x1) * (x1 - x2) / (f(x1) - f(x2));
    
    点赞 评论
  • weixin_46687994 2020-03-29 22:57

    怎么保留多一点小数点后的数

    点赞 评论

相关推荐 更多相似问题