Newton-Raphson切线法解高次方程近似根
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切线法解高次方程近似根相关推荐
- [Swust OJ 566]--开N方数(牛顿切线法解高次方程)
题目链接:http://acm.swust.edu.cn/problem/0566/ Time limit(ms): 1000 Memory limit(kb): 65535 Description ...
- matlab求方程在X附近的根,matlab 实验03 求代数方程的近似根(解)
实验三 求代数方程的近似根(解) 求代数方程的根是最常见的数学问题之一(这里称为代数方程,主要是想和后面的微分方程区别开.为简明起见,在本实验的以下叙述中,把代数方程简称为方程),当是一次多项式时,称 ...
- matlab方程近似求根,第七讲MATLAB中求方程的近似根(解)教学目的学习matlab中求根命令.doc...
第七讲MATLAB中求方程的近似根(解)教学目的学习matlab中求根命令 第七讲 MATLAB中求方程的近似根(解) 教学目的:学习matlab中求根命令,了解代数方程求根求解的四种方法,即图解法. ...
- C语言实现牛顿-拉夫逊newton raphson求近似根roots(附完整源码)
实现牛顿-拉夫逊newton raphson求近似根 实现以下几个相关的接口 实现牛顿-拉夫逊newton raphson求近似根的完整源码(定义,实现,main函数测试) 实现以下几个相关的接口 d ...
- 牛顿迭代法(Newton’s Method)迭代求根的Python程序
迭代法的作用 许多复杂的求解问题,都可以转换成方程f(x)=0的求解问题.这一系列的解叫做方程的根.对于非线性方程的求解,在自变量范围内往往有多个解,我们将此变化区域分为多个小的子区间,对每个区间进行 ...
- Go语言求平方根与解高次方程以及公式推导
求平方根,都有函数可以直接得到,比如:math.Sqrt(n),如果我们不使用这个api,要如何得到平方根的值呢?我们通过公式推导,甚至推广到可以很方便的解高次方程. package mainimpo ...
- 【 ML 】Newton – Raphson Iteration Procedure of TOA - Based Positioning Simulation
由博文可知:ML ALGORITHMS of TOA - Based Positioning Newton – Raphson Iteration: ...
- 【 NLS 】Newton – Raphson Iteration Procedure of TOA - Based Positioning
上篇博文: [ Notes ]NLS ALGORITHMS of TOA - Based Positioning说到了三种局部迭代算法进行TOA定位,分别为: Newton – Raphson Gau ...
- matlab 求附近的根,求近似根的算法-matlab实现 | 学步园
在数值计算中,求一个根的近似很重要,因为在因为在用牛顿迭代等其他方法的时候,往往要找一个初始点,初始点的选取应在根的附近.另外,只有知道了近似根,才能有整体转化为局部.刚刚学数值计算方法,认识有限,大 ...
最新文章
- (C++)1012 数字分类
- php代码规范的书籍,php基本代码规范——PSR-1
- Linux 网络层收发包流程及 Netfilter 框架浅析
- 简易VR眼镜:是玩具还是工具?
- LCP 44. 开幕式焰火
- HTML中IE版本条件注释整理
- java包名命名规则_告别编码5分钟,命名2小时!史上最全的Java命名规范参考!
- memcached系列之二
- netty 学习 (1)
- Hot Swap failed:add method not implemented
- mysql 的基本用法_mysql的基本用法
- js混淆还原工具_JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
- Java 移位运算符的复合_Java移位运算符
- 2021国内市场CRM软件排行榜
- Protues8__示波器的使用
- 广义pareto分布_帕累托分布广义帕累托分布
- flash移植到android上,Flash Web Game移植到Android平台需要注意的地方
- Java||求集合数组中的中位数
- 解决360抢票王刷票0.1秒停顿问题,思考抢票软件和IT行业
- html入住登记源码,酒店客户入住登记管理系统设计与实现.doc
热门文章
- 手机屏幕常见故障_手机测试常见问题总结!
- 钟南山团队携手腾讯研发新冠重症AI预测模型,成果登上Nature子刊
- Java实现eml文件的解析
- ubuntu下安装Realtek usb无线网卡驱动(8821cu)
- 查互联网ip(公网ip)
- R语言使用wilcox.test函数执行wilcox符号秩检验获取总体中位数(median)的置信区间(设置conf.level参数指定置信水平、置信区间的大小)
- 【NDN实验】ndnSIM 2.0: A new version of the NDN simulator for NS-3 全文翻译
- ServiceWorker 缓存与 HTTP 缓存
- 超简单的vue3.0,必看文档
- 遍历一个文件夹下的所有文件和子文件夹