Amaret_to 2023-10-29 23:08 采纳率: 100%
浏览 10
已结题

大一小白用c语言写牛顿迭代法求解一元三次方程不知道错哪了

大一小白用c语言写牛顿迭代法求解一元三次方程,不知道哪里有问题,希望有无人指教,感谢!

#include <stdio.h>
#include <math.h>
int main()
{
    double a, b, c, d, x = 1, x1 = 1.5,f,fd;
    scanf_s("%f %f %f %f", &a, &b, &c, &d);
    while (fabs(x - x1) >= 1e-5) {
        x1 = x;
        f = a * pow(x1, 3) + b * x1 * x1 + c * x1 + d;
        fd = 3 * a * x1 * x1 + 2 * b * x1 + c;
        x = x1 - f / fd;
        printf("x=%f\n", x);
    }
    return 0;
}

这个是出来的结果

img

答案应该是
1.0000 2.0000 3.0000
非常感谢

牛顿迭代法如下

img

  • 写回答

2条回答 默认 最新

  • .starch 2023-10-29 23:30
    关注

    看清楚迭代法的作用,是求1附近的根,而不是解方程

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月8日
  • 已采纳回答 10月31日
  • 修改了问题 10月29日
  • 创建了问题 10月29日

悬赏问题

  • ¥15 Java代码到底是哪里出错呀,代码甚至连整数都输出不出来
  • ¥15 三个简单项目写完之后有重赏之后联系我
  • ¥15 python报内存不能read错误
  • ¥15 hexo安装这种情况怎么办
  • ¥100 找hCaptcha图形验证码自动识别解决方案
  • ¥15 启动pycharm出错
  • ¥15 Windows Script Host 无法找到脚本文件"C:\ProgramData\Player800\Cotrl.vbs”
  • ¥15 matlab自定义损失函数
  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy