每日一题--20200428--用牛顿迭代法求根,c语言实现

c语言题 同时被 3 个专栏收录
41 篇文章 0 订阅
3 篇文章 0 订阅

用牛顿迭代法求根。方程为ax^3 +bx^2+cx+d=0,系数a、b、c、d由主函数输入,求x在1附近的一个实根。求出根后,由主函数输出。


 #include <stdio.h>
 #include <math.h>

 float solut(float a, float b, float c, float d)
 {
     float x = 1, x0, f, f1;

     do//开始迭代
     {
         x0 = x;
         f = ((a * x0 + b) * x0 + c) * x0 + d;
         f1 = (3 * a * x0 + 2 * b) * x0 + c;
         x = x0 - f / f1;
     }
     while (fabs(x - x0) >= 1e-5);

     return x;
 }

 int main()
 {
     float a, b, c, d;

     printf("\n输入方程的系数a、b、c、d:\n");
     scanf("%f,%f,%f,%f", &a, &b, &c, &d);
     printf("\n方程是:%5.2fx^3+%5.2fx^2+%5.2fx+%5.2f=0", a, b, c, d);
     printf("\nX=%10.7f\n", solut(a, b, c, d));

     return 0;
 } 

执行结果:

在这里插入图片描述

牛顿迭代法的公式:(数学)

在这里插入图片描述
这个方法百度讲的非常清楚,包括公式来源

  • 3
    点赞
  • 2
    评论
  • 5
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值