您当前的位置:首页 > 养生 > 内容

牛顿迭代法原理讲解(牛顿拉夫逊迭代法的原理解析)

牛顿迭代法原理讲解(牛顿拉夫逊迭代法的原理解析)

什么是牛顿-拉夫逊法?

牛顿:艾萨克牛顿(1642年12月25日-1727年3月20日)是英国数学家、物理学家、天文学家、神学家和作家。他被认为是历史上最有影响力的科学家之一,也是科学革命的关键人物。他的《自然哲学的数学原理》一书于1687年首次出版,奠定了经典力学的基础。牛顿还对光学做出了开创性的贡献,并与戈特弗里德威廉莱布尼茨一起发展了微积分这门学科。

牛顿

拉韦森约瑟夫拉弗森生卒不详,最著名的作品是1690年出版的《通用分析方程》。它包含一种方法,现在称为牛顿-拉夫逊法,用于求近似方程的根。艾萨克牛顿在1671年写的《通量法》中发展了一个非常相似的公式,但这部著作直到1736年才发表,比拉尔夫分析。然而,这种方法的拉夫逊版本比牛顿法简单,所以它通常被认为是一种更好的方法。

所以牛顿迭代法(简称)是一种实数域和复数域近似求解方程的数学方法。那么这个方法的具体原理是什么呢?

牛顿如何迭代?

直接看数学公式来描述如何迭代是不直观的。先看动图容易理解牛顿迭代法为什么叫迭代法,怎么迭代:

牛顿迭代法的原理是一个初始点在该点相切,切线与X轴相交得到下一个迭代点的坐标,然后在该点相切,以此类推,直到得到满足精度的近似解。

从前面的描述中我们知道,牛顿迭代法是用来近似求解方程的。这里有两点需要说明:

为什么要近似解?很多方程可能无法直接求解。

迭代法非常适合计算机编程。事实上,计算机编程广泛用于牛顿迭代法。

让看,它是如何用数学描述的?其中是函数在的一阶导数,它是点的切线。让简单推一下上面公式的由来。一次函数方程是:如果知道一条直线的一个坐标点和斜率,就可以很容易地知道这条直线的方程:那么这条直线和轴的交点就是方程的解:

什么时候停止迭代?

解决

给一个初始假设根值,用上面的迭代公式迭代。

计算绝对相对迭代逼近误差

将绝对相对近似误差与预定的相对误差容限进行比较。如果是,重复步骤2,否则,算法停止。此外,检查迭代次数是否超过了允许的最大迭代次数。如果是这样,您需要终止算法并退出。另一个终止条件是:

怎么编码?

因为牛顿迭代法的主要目的是解方程,当然也可能用来求某个数学函数的极值,所以不可能写通用代码。这里只给出一种编码思路。我相信我已经掌握了思路,对于各种实际应用,应该可以快速写出符合实际应用的代码。假设一个函数具有以下波形:

它的一阶导数是:那么对于这个函数的根:大致从图中可以知道有两个根。如果直接解方程,很难找到它的根。您可以编写一个代码来尝试:

#include #include #include # define(x)(2 *(x)*(x)-10 * cos(x)(x)-80)# define EDF (x) (4 * (x)。float Newton _ root(float x0,floatprecision,floatmin_deltax,intmax_iterations) { floatxn,xn1,fn,fn1,dfnfloatdeltaxint step=0;xn=x0xn1=x0do { xn=xn1fn=F(xn);dfn=DF(xn);if (fabs (dfn) precision)返回nan否则返回fn;} xn1=xn-fn/dfn;fn1=F(xn1);deltax=fabs(xn1-xn);步;if(step max _ iterations){ if(fabs(fn1)precision | | delta xmin _ deltax);returnxn1} void main(){ float root _ guess=23.0 f;floatprecision=0.00001ffloatmin _ deltax=0.001ffloatrootint step=7;root=Newton _ root(root _ guess,precision,min_deltax,step);printf(根是:%f,函数值是:% f ,root,F(root));root _ guess=-23;root=Newton _ root(root _ guess,precision,min_deltax,step);printf(根是:%f,函数值是:% f ,root,F(root));}结果:根为:6.457232,函数值为:0.00004,根为:-6.894969,函数值为:-0.00008。函数值非常接近0。如果需要更精确的数值,可以选择进一步求解,比如使用二分法近似。

需要注意什么?

如果斜率为0,则可以找到函数的极值,例如:

如果选取的初始猜测根靠近方程f(x)=0中函数f(x)的拐点,牛顿-拉夫逊法就可能开始偏离根。然后,它可能会收敛回根。例如:

5435866

如果选定的初始值不合适,一些根可能会被跳过,例如:

所以在实际应用中,你需要了解待解模型的大致情况,并合理调整。

有哪些应用?

比如知道一个系统的传递函数,求出传递函数的参数,就可以把上面的方法推广到求解多维变量方程组,导数就变成偏导数了。

例如,设计一个电路来测量物质的阻抗。

总结

牛顿在解决实际问题时,利用了迭代求解方程近似根的数学原理,在工程中有很好的实用价值。比如求一个趋势的极值,传递函数的参数辨识等。具有广泛的实际应用。这篇文章抛砖引玉,有可能文章有很多错漏。如有不同看法或发现错误,欢迎留言交流指正。

编辑:CC

标签:牛顿方程函数


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: win10忘记密码强制重置不用u盘(没有u盘win10电脑忘记开机密码怎么办简单方法)

下一篇: lenovo电源管理不见了(联想笔记本右下角电源管理软件的电池显示图标没有了)



推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号