Newton-Raphson切线法解高次方程近似根

对于一般的一次,二次方程来说,求解方程的根比较简单。但是对于四次、五次甚至更高次方程,求解方程的f(x)=0的根变得十分困难甚至不可能完成。为此Newton(牛顿)在1736年 Method of Fluxions 中发表文章提出一种解决方案,事实上,牛顿所提出的这种方案,另一位数学家Joseph Raphson于1690年已经发现。为此,牛顿法也称为Newton-Raphson method。

牛顿法求解方程近似根,最明显的标志是利用方程的切线,所以牛顿法也称为切线法。

如图1:

方程y=f(x)=0的根,是f(x)与x坐标轴的交点。黑色的方块点就是真实的方程根,是我们要求解的根。但是在有些情况下,方程的阶数太高,无法直接求解,所以只能求出近似值。

为了找到这个根的近似值,采取一步一步趋近的方法。具体来说:

(一)首先选择一个起始值,这个起始值的选择可以人为的、经验性质的选定一个较为合理的点,该点当然是y=f(x)上的点。在图1中就是(x0,f(x0))作为初始化的点。点(x0,f(x0))的选择是先验的。

(二)然后过点(x0,f(x0))上的点做一条切线,过曲线上一点的切线方程有现成的点斜式方程公式可用,

  (公式1)

求得该切线方程后,该切线与x坐标轴相交,再一次求得过(x0,f(x0))点的切线与x坐标轴的交点x1,。

(三)获得x1后,把x1带回到曲线y=f(x)中,于是有了第二点(x1,f(x1)),继续求过(x1,f(x1))点的切线方程,与改切线方程x坐标轴的交点为x2。

(四)拿到x2后,带回曲线方程,得到新点(x2,f(x2)),还是求过该点的切线方程,该切线方程与x坐标轴有交点,交点可以得到为x3。

至此,可以看到,通过从x0到x3的每一轮逼近,x3已经十分接近要求的黑色方块值。如果x3的结果不够理想,可以继续采取上述步骤再做几次循环求解。

总结,如图2:

更普遍的,把(xn,f(xn))代入公式1,令点斜式方程y=0,可以得到每一次进一步的求解更逼近的x结果的公式:

这样循环往复,最终可以取得理想的方程y=f(x)=0的近似解。可以看出,牛顿法数学思想再加上几何化比较明显,所以简单易用,但是也可以看出在实际的求解过程,所消耗的人类计算量通常会很大,所以在手工计算数值时代,牛顿法的实用性不是非常理想。如今牛顿法重获新生,是因为计算机的数值计算非常适应牛顿法,计算机非常喜欢这种类型的迭代计算模式,计算机不同于人类,尤其擅长这种数值方面的这种迭代计算。

但是要注意,牛顿法对初始值的选择有一定程度的敏感,如图3:

图3中的方程选择的初始值(x0,f(x0))导致无法求解到方程的根。是一个死循环。

还有就是,牛顿法所求的根,在距离较远处逼近时候,因为初始值x0选择不当,可能会求得不是想要的结果,如图4:

Newton-Raphson切线法解高次方程近似根相关推荐

  1. [Swust OJ 566]--开N方数(牛顿切线法解高次方程)

    题目链接:http://acm.swust.edu.cn/problem/0566/ Time limit(ms): 1000 Memory limit(kb): 65535 Description ...

  2. matlab求方程在X附近的根,matlab 实验03 求代数方程的近似根(解)

    实验三 求代数方程的近似根(解) 求代数方程的根是最常见的数学问题之一(这里称为代数方程,主要是想和后面的微分方程区别开.为简明起见,在本实验的以下叙述中,把代数方程简称为方程),当是一次多项式时,称 ...

  3. matlab方程近似求根,第七讲MATLAB中求方程的近似根(解)教学目的学习matlab中求根命令.doc...

    第七讲MATLAB中求方程的近似根(解)教学目的学习matlab中求根命令 第七讲 MATLAB中求方程的近似根(解) 教学目的:学习matlab中求根命令,了解代数方程求根求解的四种方法,即图解法. ...

  4. C语言实现牛顿-拉夫逊newton raphson求近似根roots(附完整源码)

    实现牛顿-拉夫逊newton raphson求近似根 实现以下几个相关的接口 实现牛顿-拉夫逊newton raphson求近似根的完整源码(定义,实现,main函数测试) 实现以下几个相关的接口 d ...

  5. 牛顿迭代法(Newton’s Method)迭代求根的Python程序

    迭代法的作用 许多复杂的求解问题,都可以转换成方程f(x)=0的求解问题.这一系列的解叫做方程的根.对于非线性方程的求解,在自变量范围内往往有多个解,我们将此变化区域分为多个小的子区间,对每个区间进行 ...

  6. Go语言求平方根与解高次方程以及公式推导

    求平方根,都有函数可以直接得到,比如:math.Sqrt(n),如果我们不使用这个api,要如何得到平方根的值呢?我们通过公式推导,甚至推广到可以很方便的解高次方程. package mainimpo ...

  7. 【 ML 】Newton – Raphson Iteration Procedure of TOA - Based Positioning Simulation

    由博文可知:ML ALGORITHMS of TOA - Based Positioning Newton – Raphson Iteration:                           ...

  8. 【 NLS 】Newton – Raphson Iteration Procedure of TOA - Based Positioning

    上篇博文: [ Notes ]NLS ALGORITHMS of TOA - Based Positioning说到了三种局部迭代算法进行TOA定位,分别为: Newton – Raphson Gau ...

  9. matlab 求附近的根,求近似根的算法-matlab实现 | 学步园

    在数值计算中,求一个根的近似很重要,因为在因为在用牛顿迭代等其他方法的时候,往往要找一个初始点,初始点的选取应在根的附近.另外,只有知道了近似根,才能有整体转化为局部.刚刚学数值计算方法,认识有限,大 ...

最新文章

  1. (C++)1012 数字分类
  2. php代码规范的书籍,php基本代码规范——PSR-1
  3. Linux 网络层收发包流程及 Netfilter 框架浅析
  4. 简易VR眼镜:是玩具还是工具?
  5. LCP 44. 开幕式焰火
  6. HTML中IE版本条件注释整理
  7. java包名命名规则_告别编码5分钟,命名2小时!史上最全的Java命名规范参考!
  8. memcached系列之二
  9. netty 学习 (1)
  10. Hot Swap failed:add method not implemented
  11. mysql 的基本用法_mysql的基本用法
  12. js混淆还原工具_JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
  13. Java 移位运算符的复合_Java移位运算符
  14. 2021国内市场CRM软件排行榜
  15. Protues8__示波器的使用
  16. 广义pareto分布_帕累托分布广义帕累托分布
  17. flash移植到android上,Flash Web Game移植到Android平台需要注意的地方
  18. Java||求集合数组中的中位数
  19. 解决360抢票王刷票0.1秒停顿问题,思考抢票软件和IT行业
  20. html入住登记源码,酒店客户入住登记管理系统设计与实现.doc

热门文章

  1. 手机屏幕常见故障_手机测试常见问题总结!
  2. 钟南山团队携手腾讯研发新冠重症AI预测模型,成果登上Nature子刊
  3. Java实现eml文件的解析
  4. ubuntu下安装Realtek usb无线网卡驱动(8821cu)
  5. 查互联网ip(公网ip)
  6. R语言使用wilcox.test函数执行wilcox符号秩检验获取总体中位数(median)的置信区间(设置conf.level参数指定置信水平、置信区间的大小)
  7. 【NDN实验】ndnSIM 2.0: A new version of the NDN simulator for NS-3 全文翻译
  8. ServiceWorker 缓存与 HTTP 缓存
  9. 超简单的vue3.0,必看文档
  10. 遍历一个文件夹下的所有文件和子文件夹