牛顿迭代法求方程的根

1. 牛顿迭代法的几何解释

  • 注解: 设 rrr是f(x)=0f(x)=0f(x)=0 的根,选取 x0x_0x0​ 作为 rrr 的初始近似值,过点 (x0,f(x0))(x_0,f(x_0))(x0​,f(x0​)) 做曲线 y=f(x)y=f(x)y=f(x) 的切线 LLL , L:y=f(x0)+f′(x0)(x−x0)L:y=f(x_0)+f'(x_0)(x-x_0)L:y=f(x0​)+f′(x0​)(x−x0​) ,则 LLL 与 xxx 轴交点的横坐标 x1=x0−f(x0)f′(x0)x_1=x_0-\frac{f(x_0)}{f'(x_0)}x1​=x0​−f′(x0​)f(x0​)​ ,称 x1x_1x1​为 rrr 的一次近似值。过点 (x1,f(x1))(x_1,f(x_1))(x1​,f(x1​))做曲线 y=f(x)y=f(x)y=f(x) 的切线,并求该切线与xxx轴交点的横坐标 x2=x1−f(x1)f′(x1)x_2=x_1-\frac{f(x_1)}{f'(x_1)}x2​=x1​−f′(x1​)f(x1​)​ ,称 x2x_2x2​ 为rrr的二次近似值。重复以上过程,得 rrr 的近似值序列,其中,xxxn+1=xn−f(xn)f′(xn)=x_n-\frac{f(x_n)}{f'(x_n)}=xn​−f′(xn​)f(xn​)​ 称为 rrr 的 n+1n+1n+1 次近似值,上式称为牛顿迭代公式。
    以下是部分图片(本人选自百度图片),帮助理解:

2. 案例

题目:用牛顿迭代法求根。方程为 ax3+bx2+cx+d=0ax^3+bx^2+cx+d=0ax3+bx2+cx+d=0 ,系数 a,b,c,da,b,c,da,b,c,d 的值依次为 1,2,3,4,由主函数输入。求 xxx 在 1 附近的一个实根。求出根后由主函数输出。

3. 案例分析

牛顿迭代公式为: xxxn+1=xn−f(xn)f′(xn)=x_n-\frac{f(x_n)}{f'(x_n)}=xn​−f′(xn​)f(xn​)​
其中,x0x_0x0​是上一次求出的近似根,在开始是根据题设 x0=1x_0=1x0​=1(题目希望求x在1附近的一个实根,因此第一次的近似值可以设定为1)。f(x)=x3+2x2+3x+4f(x)=x^3+2x^2+3x+4f(x)=x3+2x2+3x+4。f′(x)f'(x)f′(x)是f(x)f(x)f(x)的导数,所以f′(x)=3x2+6x+3f'(x)=3x^2+6x+3f′(x)=3x2+6x+3
第一次迭代,x=1−f(1)f′(1)x=1-\frac{f(1)}{f'(1)}x=1−f′(1)f(1)​ ;第二次迭代 。。。依次类推;
一直迭代到∣x−x0∣&lt;=10|x-x_0|&lt;=10∣x−x0​∣<=10-3时结束。

4.代码实现

#include <stdio.h>
#include <math.h>float solution(float a,float b,float c,float d);int main()
{float a,b,c,d;printf("请输入系数a,b,c,d: ");scanf("%f%f%f%f",&a,&b,&c,&d);printf("x=%10.7f\n",solution(a,b,c,d));return 0;
}float solution(float a, float b, float c,float d)
{float x = 1;float 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-3);return x;
}
参考文章
  1. https://blog.csdn.net/yyzsir/article/details/78712887
  2. https://blog.csdn.net/qq_41928880/article/details/80023335
  3. https://blog.csdn.net/qq_31029351/article/details/53311285

C程序设计案例(牛顿迭代法求高次方程的根)相关推荐

  1. 用牛顿迭代法求方程的根

    用牛顿迭代法求方程的根(C语言) 题目要求:牛顿迭代法是一种重要的基本的求方程根的方法.现有方程为axˆ3+bxˆ2+cx+d=0,系数a,b,c,d的值一次为1,2,3,4,由主函数输入.求x在1附 ...

  2. 【Python】Python用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。提示:牛顿迭代法求非线性方程的根的迭代公式为x`(n+1)`=x`n`-f(x)/f'(x) 。

    用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根.提示:牛顿迭代法求非线性方程的根的迭代公式为x(n+1)=xn-f(x)/f'(x) . 算法源码 def f(x): ##原函数ret ...

  3. 牛顿迭代法求方程的根

    牛顿迭代法(牛顿-拉弗森方法) 五次及以上多项式方程没有根式解(就是没有像二次方程那样的万能公式),这个是被伽罗瓦用群论做出的最著名的结论.没有根式解不意味着方程解不出来,数学家也提供了很多方法,牛顿 ...

  4. 用牛顿迭代法求方程的根matlab,牛顿迭代法求方程根的MATLAB程序

    function [x_reality,n_reality] = Newt( f_name,x_start,tolerance,n_limit) %% %牛顿迭代法(切线法)求解方程f_name = ...

  5. 1087 习题5-14 牛顿迭代法求方程的根

    题目描述 用牛顿迭代法求下面方程在输入初值点附近的根: 2x3-4x2+3x-6=0 要求前后两次求出的x的差的绝对值小于10-6 牛顿迭代法公式如下: 将给定给定方程写成f(x)=0的形式,在给定初 ...

  6. java牛顿法求方程根_C程序习题-用牛顿迭代法求方程的根[6.12]

    用牛顿迭代法求下面方程在1.5附近的根.2X3– 4X2+3X- 6 = 0 看到这个题目,我便开始百度,看什么是牛顿迭代法.看了上面的解释,我还是一头雾水.无从下手.不知所云.看着上面写的推到公式, ...

  7. 【清橙A1094】【牛顿迭代法】牛顿迭代法求方程的根

    问题描述 给定三次函数f(x)=ax3+bx2+cx+d的4个系数a,b,c,d,以及一个数z,请用牛顿迭代法求出函数f(x)=0在z附近的根,并给出迭代所需要次数. 牛顿迭代法的原理如下(参考下图) ...

  8. 用牛顿迭代法求方程的根matlab,牛顿迭代法求方程解 程序如下

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function [x_reality,n_reality] = Newt( f_name,x_start,tolerance,n_limit) %% % ...

  9. Matlab牛顿迭代法求方程的根(GUI)

    牛顿迭代法的具体内容不赘述 它的核心算法是: k = 1; x = x0; x0 = x + e*2; % 为了让初启动时满足循环条件 while (abs(x-x0))>e && ...

  10. python迭代法求解方程_第一部分:趣味算法入门;第六题牛顿迭代法求一元三次方程的根...

    100个不同类型的python语言趣味编程题 在求解的过程中培养编程兴趣,拓展编程思维,提高编程能力. 第一部分:趣味算法入门:第六题SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键 ...

最新文章

  1. Mac解决中文matplotlib乱码问题
  2. 负载均衡集群介绍、LVS介绍、LVS调度算法、 LVS NAT模式搭建
  3. 小米3 开发人员选项
  4. 双11还能创造什么新技术?
  5. 设计模式学习之单例模式
  6. python3 面向对象、类、继承、组合、派生、接口、子类重用父类方法
  7. VC++学习方法及书籍推荐(转)
  8. Revit中导入的CAD标高不统一处理及“标高管理”
  9. 量子计算(六):量子计算软件介绍
  10. 苹果应用商店审核_苹果应用商店AppStore审核规则指南
  11. Java简繁体汉字转化
  12. 信息熵——与一枚硬币的故事
  13. 指标波动的原因很头疼?不妨试试“问诊”法!
  14. 网易互联网雷火互娱22届校招及社招内推
  15. 接口测试,后端接口还没开发完,如何测?解决看这一篇就够了......
  16. 【调剂】苏州科技大学电子与信息工程学院2021年硕士研究生招生第二批调剂信息公告...
  17. 台式电脑显示无法自动修复此计算机,windows无法自动修复此计算机怎么解决
  18. 微信小程序框架(一)-全面详解(学习总结---从入门到深化)
  19. css实现圆角div
  20. 全面讲解分布式数据库架构设计特点

热门文章

  1. ASP.NET MVC 重点教程一周年版 第三回 Controller与View
  2. .Net 下的Wondows窗体常用项目
  3. 【SpringBoot_ANNOTATIONS】生命周期 04 BeanPostProcessor 后置处理器
  4. 函数 php_PHP丨PHP基础知识之PHP基础入门——函数「理论篇」
  5. Android实现计算器布局(表格布局)
  6. 微信浪漫告白小程序java_厉害了,微信小程序可以这样表白,还怕他(她)拒绝你?...
  7. 数据库得事务控制详解,什么是事务回滚详解,通俗易懂
  8. ios html清除缓存图片,iOS 清理文件缓存(示例代码)
  9. 提高网页效率的14条准则
  10. Configuration Manager 2012 R2系统需求