0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

牛顿迭代如何迭代?

FPGA之家 来源:FPGA之家 作者:FPGA之家 2021-03-09 10:52 次阅读

什么是牛顿-拉夫逊方法?

牛顿其人:Isaac Newton(1642年12月25日– 1727年3月20日)是一位英国数学家,物理学家,天文学家,神学家和作家,被公认为有史以来最有影响力的科学家之一,并且是科学革命的关键人物。他的书《自然哲学的数学原理》于1687年首次出版,奠定了古典力学的基础。牛顿还为光学做出了开创性的贡献,并与戈特弗里德·威廉·莱布尼兹(Gottfried Wilhelm Leibniz)发展了无穷微积分的学科。

拉弗森Joseph Raphson 生卒不详,其最著名的著作是1690年出版的《通用分析方程》。它包含一种方法,现在称其为牛顿-拉夫森方法,用于近似方程式的求根。艾萨克·牛顿(Isaac Newton)在1671年写的《通量法》中开发了一个非常相似的公式,但是这项工作要到1736年才出版,这是拉夫森分析之后近50年。但是,该方法的Raphson版本比Newton方法更简单,因此通常被认为是更好的方法。

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

牛顿迭代如何迭代?

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

牛顿迭代法是原理是根据一个初始点在该点做切线,切线与X轴相交得出下一个迭代点的坐标,再在处做切线,依次类推,直到求得满足精度的近似解为止。

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

为啥要近似求解?很多方程可能无法直接求取其解

迭代法非常适合计算机编程实现,实际上计算机编程对于牛顿迭代法广为应用

来看看,数学上如何描述的?

其中为函数在处的一阶导数,也就是该点的切线。

来简单推一推上面公式的由来,直线函数方程为:

知道一个直线的一个坐标点以及斜率则该直线的方程就很容易可以得知:

那么该直线与轴的交点,就是也即等式的解:

啥时候停止迭代呢?

计算出

给出一个初始假定根值,利用上面迭代式子进行迭代

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

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

如何编码呢?

由于牛顿迭代法主要目的是解方程,当然也有可能用于某一个数学函数求极值,所以无法写出通用的代码,这里仅仅给出一个编代码的思路。相信掌握了思路,对于各种实际应用应该能很快的写出符合实际应用的代码。

假定一函数为

其波形图如下:

其一阶导数为:

那么对于该函数的根:

从图上大致可以知道有两个根,如果直接解方程,则很难求出其根,可以编个代码试试:

#include #include #include /*假定待求根函数如下*/ #defineF(x)(2*(x)*(x)-10*cos(x)+(x)-80) /*其一阶导数为*/ #defineDF(x)(4*(x)+10*sin(x)+1) floatnewton_rooting(floatx0,floatprecision,floatmin_deltax,intmax_iterations) { floatxn,xn1,fn,fn1,dfn; floatdeltax; intstep=0; xn=x0; xn1=x0; do{ xn=xn1; fn=F(xn); dfn=DF(xn); /*判0*/ if(fabs(dfn)<1e-6 )        {             if( fabs(fn)>precision) returnNAN; else returnfn; } xn1=xn-fn/dfn; fn1=F(xn1); deltax=fabs(xn1-xn); step++; if(step>max_iterations) { if(fabs(fn1)precision||deltax>min_deltax); returnxn1; } voidmain() { floatroot_guess=23.0f; floatprecision=0.00001f; floatmin_deltax=0.001f; floatroot; intstep=7; root=newton_rooting(root_guess,precision,min_deltax,step); printf("根为:%f,函数值为:%f ",root,F(root)); root_guess=-23; root=newton_rooting(root_guess,precision,min_deltax,step); printf("根为:%f,函数值为:%f ",root,F(root)); }

结果:

根为:6.457232, 函数值为:0.000004 根为:-6.894969,函数值为:-0.000008

函数值已经很接近于0了,如果还需要更为精确的值,则可以选择在此基础上进一步求解,比如利用二分法逼近。

需要注意些啥?

求斜率可能为0,如为0时,则可能找到了函数的极值,比如:

如果选择的初始猜测根的接近方程f(x)=0中函数f(x)的拐点 ,Newton-Raphson方法可能开始偏离根。然后,它可能会又收敛回到根。例如:

5435866

如果选择的初值不合适,可能会跳掉一些根,比如:

所以实际应用时,需要知道自己待求解模型的大致情况,在合理的加以调整。

有哪些应用?

比如知道某系统的传递函数,求解传函的参数,可以将上述方法推而广之,求解多维变量方程组,求导就变成求偏导了

又比如设计一电路测量某物质的阻抗

....

总结一下

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

—END—

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4274

    浏览量

    62302
  • 迭代
    +关注

    关注

    0

    文章

    21

    浏览量

    8680
  • 牛顿
    +关注

    关注

    0

    文章

    6

    浏览量

    6327

原文标题:数学之美:牛顿-拉夫逊迭代法原理及其实现

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    面对快速迭代的技术,怎能忽视设备升级的高效与灵活性?

    导读自动化设备与储能业务竞争激烈,技术迭代快,设备升级成关键。致远电子为ZMC系列控制器提供高效升级方案,助力用户保持技术前沿竞争力。工业机器人解决方案在自动化设备与工业储能业务所处的快节奏且高度
    的头像 发表于 11-05 08:03 21次阅读
    面对快速<b class='flag-5'>迭代</b>的技术,怎能忽视设备升级的高效与灵活性?

    通信技术迭代周期缩短,RFSOI市场前景明朗

    电子发烧友网报道(文/吴子鹏)在SOI发展路径里,RFSOI是一个特殊的工艺分支,专门面向射频应用。随着通信技术迭代且系统复杂度显著提升,RFSOI已经成为一些射频器件实现的主要方式,尤其是在射频
    发表于 10-25 21:00 187次阅读
    通信技术<b class='flag-5'>迭代</b>周期缩短,RFSOI市场前景明朗

    SIM卡的迭代(SIM-USIM-eSIM-vSIM-softSIM)

    0-SIM卡的迭代(SIM-USIM-eSIM-vSIM-softSIM)从2G时代一直到现在5G的到来,网络在发展SIM卡的形态也跟着在变化,从大变小,从小变更小,在从更小变无(纯软件)。 
    发表于 10-22 10:06 0次下载

    航顺年度MCU新品发布,高性能迭代和新世代指纹传感器

    电子发烧友网报道(文/周凯扬)2024年6月15日,航顺举办了HK32MCU新品发布会,本次大会上,航顺发布了高性能迭代HK32F4系列MCU产品,以及新世代指纹传感器新品HK32S0192
    的头像 发表于 06-24 01:05 2761次阅读

    新能源汽车快充时代:技术迭代与市场变革的交汇点

    随着新能源汽车市场的蓬勃发展,技术的快速迭代与创新成为推动产业不断前进的核心动力。在这一波浪潮中,快充技术的迅速崛起尤为引人注目,它不仅代表着电池技术的一大飞跃,更预示着新能源汽车市场即将迎来一场深刻的变革。
    的头像 发表于 06-17 15:23 1141次阅读

    蓝牙模块的不同版本迭代发展与技术趋势

    蓝牙技术自1999年首次亮相以来,已经历了从1.0到5.0的多个版本迭代,每一次的更新都带来了显著的性能提升和广泛的应用前景。本文将综述蓝牙模块的版本迭代,分析其主要改进点,并探讨蓝牙模块在物联网
    的头像 发表于 06-14 16:05 422次阅读

    英伟达加速AI芯片迭代,推出Rubin架构计划

    在近日举办的COMPUTEX 2024展会上,英伟达CEO黄仁勋再次展现了公司在人工智能(AI)芯片领域的雄心壮志。他公布了下一代AI芯片架构“Rubin”,这是继今年3月发布的“Blackwell”架构之后的又一次重要迭代
    的头像 发表于 06-03 11:36 756次阅读

    固态电池进展拉动正极材料体系迭代

    无论是市场炒作的新故事概念,还是多年深耕后技术变革节点的到来,固态电池板块已成为多方关注的焦点,并带动上游材料端的迭代升级。
    的头像 发表于 04-22 09:17 622次阅读

    AI算力的需求推动光模块行业快速迭代

    近期,由OpenAI发布的人工智能文生视频大模型Sora再次引起了不小的轰动,继ChatGPT之后,Sora的推出让AIGC(生成式人工智能)再度成为行业焦点,AI大模型的快速迭代升级对网络架构提出了更高要求,推动光模块产品向着低时延和高速率方向演进。
    的头像 发表于 04-10 14:07 296次阅读
    AI算力的需求推动光模块行业快速<b class='flag-5'>迭代</b>

    HFSS不能使用迭代求解

    新手小白提问,如图,设置的是迭代求解,运行时转为直接求解导致内存不够,请大神解答为什么不能用迭代求解啊
    发表于 03-27 14:24

    优可测响应“以旧换新”行动方案,加速“高端、智能、绿色”仪器设备更新迭代

    日前,国务院印发的《推动大规模设备更新和消费品以旧换新行动方案》(以下简称《行动方案》)对外发布。在此,优可测响应“以旧换新”《行动方案》,加速“高端、智能、绿色”仪器设备更新迭代​。
    的头像 发表于 03-16 08:29 699次阅读
    优可测响应“以旧换新”行动方案,加速“高端、智能、绿色”仪器设备更新<b class='flag-5'>迭代</b>

    车规级芯片迭代背后的秘密:市场需求与技术创新如何博弈?

    随着汽车智能化、电动化趋势的加速发展,车规级芯片作为汽车电子系统的核心组件,其重要性日益凸显。车规级芯片的迭代周期,即新一代芯片从研发到量产所需的时间,已成为业界关注的焦点。本文将深入探讨车规级芯片的迭代周期及其影响因素。
    的头像 发表于 02-28 09:37 841次阅读
    车规级芯片<b class='flag-5'>迭代</b>背后的秘密:市场需求与技术创新如何博弈?

    英特尔AI PC处理器发布 存储芯片迎国产化迭代机遇

    AI PC也将显著增加更高带宽的内存需求,以提升整体运算性能。由此或将带来存储领域芯片迭代及国产化机遇。
    的头像 发表于 12-19 10:59 786次阅读

    如何加速HBM仿真迭代优化?

    如何加速HBM仿真迭代优化?
    的头像 发表于 11-29 16:13 658次阅读
    如何加速HBM仿真<b class='flag-5'>迭代</b>优化?

    python牛顿迭代

    牛顿迭代法是一种数值计算方法,用于求解方程的数值近似解。它是以英国科学家艾萨克·牛顿的名字命名的,最初由牛顿在17世纪末提出。牛顿
    的头像 发表于 11-21 15:06 901次阅读