快点登陆 2022-04-08 10:53 采纳率: 100%
浏览 43
已结题

牛顿切线法求方程的根出错无法运行,如何解决?(语言-c++)


#include<iostream>
#include<cmath>
using namespace std;
int f(float x)
{
    float y;
    y=x*x+3*x-4;
    return y;
}
int df(float x)
{
    float y;
    y=2*x+3;
    return y;
}
int main()
{
    float x1,x0;
    x1=0;
    do
    {
        x0=x1;
        x1=x0-f(x0)/df(x0);
    }while(fabs(x1)>=0.00001);
    cout<<"x="<<x1<<endl;
    return 0;
}

这段代码运行后没有输出,为什么啊?

  • 写回答

2条回答 默认 最新

  • 关注

    算法有问题

    #include <cmath>
    #include <iostream>
    
    auto f(float x) -> float
    {
        float y;
        y = x * x + 4 * x + 4;
        return y;
    }
    auto df(float x) -> float
    {
        float y;
        y = 2 * x + 2;
        return y;
    }
    
    int main()
    {
        float x1;
        float x0;
        x1 = 0;
        do
        {
            x0 = x1;
            x1 = x0 - f(x0) / df(x0);
        } while (fabs(x1 - x0) >= 0.00001);
    
        std::cout << "x=" << x1 << std::endl;
    
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月8日
  • 已采纳回答 4月8日
  • 创建了问题 4月8日