0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

牛頓迭代如何迭代?

FPGA之家 ? 來(lái)源:FPGA之家 ? 作者:FPGA之家 ? 2021-03-09 10:52 ? 次閱讀

什么是牛頓-拉夫遜方法?

牛頓其人:Isaac Newton(1642年12月25日– 1727年3月20日)是一位英國(guó)數(shù)學(xué)家,物理學(xué)家,天文學(xué)家,神學(xué)家和作家,被公認(rèn)為有史以來(lái)最有影響力的科學(xué)家之一,并且是科學(xué)革命的關(guān)鍵人物。他的書《自然哲學(xué)的數(shù)學(xué)原理》于1687年首次出版,奠定了古典力學(xué)的基礎(chǔ)。牛頓還為光學(xué)做出了開創(chuàng)性的貢獻(xiàn),并與戈特弗里德·威廉·萊布尼茲(Gottfried Wilhelm Leibniz)發(fā)展了無(wú)窮微積分的學(xué)科。

拉弗森Joseph Raphson 生卒不詳,其最著名的著作是1690年出版的《通用分析方程》。它包含一種方法,現(xiàn)在稱其為牛頓-拉夫森方法,用于近似方程式的求根。艾薩克·牛頓(Isaac Newton)在1671年寫的《通量法》中開發(fā)了一個(gè)非常相似的公式,但是這項(xiàng)工作要到1736年才出版,這是拉夫森分析之后近50年。但是,該方法的Raphson版本比Newton方法更簡(jiǎn)單,因此通常被認(rèn)為是更好的方法。

所以,牛頓迭代法(簡(jiǎn)寫)就是一種近似求解實(shí)數(shù)域與復(fù)數(shù)域求解方程的數(shù)學(xué)方法。那么這個(gè)方法是具體是什么原理呢?

牛頓迭代如何迭代?

直接看數(shù)學(xué)公式描述如何迭代不直觀,先來(lái)看動(dòng)圖就很容易理解牛頓迭代法為什么叫迭代法以及怎樣迭代的:

牛頓迭代法是原理是根據(jù)一個(gè)初始點(diǎn)在該點(diǎn)做切線,切線與X軸相交得出下一個(gè)迭代點(diǎn)的坐標(biāo),再在處做切線,依次類推,直到求得滿足精度的近似解為止。

由前面描述知道,牛頓迭代法是用來(lái)近似求解方程的,這里有兩個(gè)點(diǎn)需要說(shuō)明:

為啥要近似求解?很多方程可能無(wú)法直接求取其解

迭代法非常適合計(jì)算機(jī)編程實(shí)現(xiàn),實(shí)際上計(jì)算機(jī)編程對(duì)于牛頓迭代法廣為應(yīng)用

來(lái)看看,數(shù)學(xué)上如何描述的?

其中為函數(shù)在處的一階導(dǎo)數(shù),也就是該點(diǎn)的切線。

來(lái)簡(jiǎn)單推一推上面公式的由來(lái),直線函數(shù)方程為:

知道一個(gè)直線的一個(gè)坐標(biāo)點(diǎn)以及斜率則該直線的方程就很容易可以得知:

那么該直線與軸的交點(diǎn),就是也即等式的解:

啥時(shí)候停止迭代呢?

計(jì)算出

給出一個(gè)初始假定根值,利用上面迭代式子進(jìn)行迭代

計(jì)算絕對(duì)相對(duì)迭代近似誤差

將絕對(duì)相對(duì)近似誤差與預(yù)定的相對(duì)誤差容限進(jìn)行比較。如果,則迭代步驟2,否則停止算法。另外,檢查迭代次數(shù)是否已超過(guò)允許的最大迭代次數(shù)。如果是這樣,則需要終止算法并退出。另一個(gè)終止條件是:

如何編碼呢?

由于牛頓迭代法主要目的是解方程,當(dāng)然也有可能用于某一個(gè)數(shù)學(xué)函數(shù)求極值,所以無(wú)法寫出通用的代碼,這里僅僅給出一個(gè)編代碼的思路。相信掌握了思路,對(duì)于各種實(shí)際應(yīng)用應(yīng)該能很快的寫出符合實(shí)際應(yīng)用的代碼。

假定一函數(shù)為

其波形圖如下:

其一階導(dǎo)數(shù)為:

那么對(duì)于該函數(shù)的根:

從圖上大致可以知道有兩個(gè)根,如果直接解方程,則很難求出其根,可以編個(gè)代碼試試:

#include #include #include /*假定待求根函數(shù)如下*/ #defineF(x)(2*(x)*(x)-10*cos(x)+(x)-80) /*其一階導(dǎo)數(shù)為*/ #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,函數(shù)值為:%f ",root,F(root)); root_guess=-23; root=newton_rooting(root_guess,precision,min_deltax,step); printf("根為:%f,函數(shù)值為:%f ",root,F(root)); }

結(jié)果:

根為:6.457232, 函數(shù)值為:0.000004 根為:-6.894969,函數(shù)值為:-0.000008

函數(shù)值已經(jīng)很接近于0了,如果還需要更為精確的值,則可以選擇在此基礎(chǔ)上進(jìn)一步求解,比如利用二分法逼近。

需要注意些啥?

求斜率可能為0,如為0時(shí),則可能找到了函數(shù)的極值,比如:

如果選擇的初始猜測(cè)根的接近方程f(x)=0中函數(shù)f(x)的拐點(diǎn) ,Newton-Raphson方法可能開始偏離根。然后,它可能會(huì)又收斂回到根。例如:

5435866

如果選擇的初值不合適,可能會(huì)跳掉一些根,比如:

所以實(shí)際應(yīng)用時(shí),需要知道自己待求解模型的大致情況,在合理的加以調(diào)整。

有哪些應(yīng)用?

比如知道某系統(tǒng)的傳遞函數(shù),求解傳函的參數(shù),可以將上述方法推而廣之,求解多維變量方程組,求導(dǎo)就變成求偏導(dǎo)了

又比如設(shè)計(jì)一電路測(cè)量某物質(zhì)的阻抗

....

總結(jié)一下

牛頓迭代法在解決實(shí)際問題時(shí),利用迭代求方程近似根的數(shù)學(xué)原理,在工程中有著很好的實(shí)用價(jià)值。比如求一個(gè)趨勢(shì)的極值,傳遞函數(shù)參數(shù)辨識(shí)等都有廣泛的實(shí)際應(yīng)用。本文拋磚引玉,有可能文章也有很多錯(cuò)誤疏漏的地方,如有不同看法或者發(fā)現(xiàn)錯(cuò)誤,歡迎留言交流指正。

—END—

責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4237

    瀏覽量

    61965
  • 迭代
    +關(guān)注

    關(guān)注

    0

    文章

    21

    瀏覽量

    8671
  • 牛頓
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    6326

原文標(biāo)題:數(shù)學(xué)之美:牛頓-拉夫遜迭代法原理及其實(shí)現(xiàn)

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    航順年度MCU新品發(fā)布,高性能迭代和新世代指紋傳感器

    電子發(fā)燒友網(wǎng)報(bào)道(文/周凱揚(yáng))2024年6月15日,航順舉辦了HK32MCU新品發(fā)布會(huì),本次大會(huì)上,航順發(fā)布了高性能迭代HK32F4系列MCU產(chǎn)品,以及新世代指紋傳感器新品HK32S0192
    的頭像 發(fā)表于 06-24 01:05 ?2630次閱讀

    藍(lán)牙更新至5.4版本,芯片廠商同步新品迭代

    電子發(fā)燒友網(wǎng)報(bào)道(文/莫婷婷)藍(lán)牙技術(shù)持續(xù)迭代,如今已經(jīng)發(fā)展到藍(lán)牙5.4版本, 為全球范圍內(nèi)各種設(shè)備之間的連接和數(shù)據(jù)傳輸提供了 更多的 可能 。藍(lán)牙5.4版本是藍(lán)牙技術(shù)聯(lián)盟在2023年公布的版本
    的頭像 發(fā)表于 06-24 00:15 ?5984次閱讀
    藍(lán)牙更新至5.4版本,芯片廠商同步新品<b class='flag-5'>迭代</b>

    新能源汽車快充時(shí)代:技術(shù)迭代與市場(chǎng)變革的交匯點(diǎn)

    隨著新能源汽車市場(chǎng)的蓬勃發(fā)展,技術(shù)的快速迭代與創(chuàng)新成為推動(dòng)產(chǎn)業(yè)不斷前進(jìn)的核心動(dòng)力。在這一波浪潮中,快充技術(shù)的迅速崛起尤為引人注目,它不僅代表著電池技術(shù)的一大飛躍,更預(yù)示著新能源汽車市場(chǎng)即將迎來(lái)一場(chǎng)深刻的變革。
    的頭像 發(fā)表于 06-17 15:23 ?1026次閱讀

    藍(lán)牙模塊的不同版本迭代發(fā)展與技術(shù)趨勢(shì)

    藍(lán)牙技術(shù)自1999年首次亮相以來(lái),已經(jīng)歷了從1.0到5.0的多個(gè)版本迭代,每一次的更新都帶來(lái)了顯著的性能提升和廣泛的應(yīng)用前景。本文將綜述藍(lán)牙模塊的版本迭代,分析其主要改進(jìn)點(diǎn),并探討藍(lán)牙模塊在物聯(lián)網(wǎng)
    的頭像 發(fā)表于 06-14 16:05 ?296次閱讀

    英偉達(dá)加速AI芯片迭代,推出Rubin架構(gòu)計(jì)劃

    在近日舉辦的COMPUTEX 2024展會(huì)上,英偉達(dá)CEO黃仁勛再次展現(xiàn)了公司在人工智能(AI)芯片領(lǐng)域的雄心壯志。他公布了下一代AI芯片架構(gòu)“Rubin”,這是繼今年3月發(fā)布的“Blackwell”架構(gòu)之后的又一次重要迭代。
    的頭像 發(fā)表于 06-03 11:36 ?688次閱讀

    固態(tài)電池進(jìn)展拉動(dòng)正極材料體系迭代

    無(wú)論是市場(chǎng)炒作的新故事概念,還是多年深耕后技術(shù)變革節(jié)點(diǎn)的到來(lái),固態(tài)電池板塊已成為多方關(guān)注的焦點(diǎn),并帶動(dòng)上游材料端的迭代升級(jí)。
    的頭像 發(fā)表于 04-22 09:17 ?504次閱讀

    AI算力的需求推動(dòng)光模塊行業(yè)快速迭代

    近期,由OpenAI發(fā)布的人工智能文生視頻大模型Sora再次引起了不小的轟動(dòng),繼ChatGPT之后,Sora的推出讓AIGC(生成式人工智能)再度成為行業(yè)焦點(diǎn),AI大模型的快速迭代升級(jí)對(duì)網(wǎng)絡(luò)架構(gòu)提出了更高要求,推動(dòng)光模塊產(chǎn)品向著低時(shí)延和高速率方向演進(jìn)。
    的頭像 發(fā)表于 04-10 14:07 ?246次閱讀
    AI算力的需求推動(dòng)光模塊行業(yè)快速<b class='flag-5'>迭代</b>

    HFSS不能使用迭代求解

    新手小白提問,如圖,設(shè)置的是迭代求解,運(yùn)行時(shí)轉(zhuǎn)為直接求解導(dǎo)致內(nèi)存不夠,請(qǐng)大神解答為什么不能用迭代求解啊
    發(fā)表于 03-27 14:24

    優(yōu)可測(cè)響應(yīng)“以舊換新”行動(dòng)方案,加速“高端、智能、綠色”儀器設(shè)備更新迭代

    日前,國(guó)務(wù)院印發(fā)的《推動(dòng)大規(guī)模設(shè)備更新和消費(fèi)品以舊換新行動(dòng)方案》(以下簡(jiǎn)稱《行動(dòng)方案》)對(duì)外發(fā)布。在此,優(yōu)可測(cè)響應(yīng)“以舊換新”《行動(dòng)方案》,加速“高端、智能、綠色”儀器設(shè)備更新迭代?。
    的頭像 發(fā)表于 03-16 08:29 ?640次閱讀
    優(yōu)可測(cè)響應(yīng)“以舊換新”行動(dòng)方案,加速“高端、智能、綠色”儀器設(shè)備更新<b class='flag-5'>迭代</b>

    車規(guī)級(jí)芯片迭代背后的秘密:市場(chǎng)需求與技術(shù)創(chuàng)新如何博弈?

    隨著汽車智能化、電動(dòng)化趨勢(shì)的加速發(fā)展,車規(guī)級(jí)芯片作為汽車電子系統(tǒng)的核心組件,其重要性日益凸顯。車規(guī)級(jí)芯片的迭代周期,即新一代芯片從研發(fā)到量產(chǎn)所需的時(shí)間,已成為業(yè)界關(guān)注的焦點(diǎn)。本文將深入探討車規(guī)級(jí)芯片的迭代周期及其影響因素。
    的頭像 發(fā)表于 02-28 09:37 ?732次閱讀
    車規(guī)級(jí)芯片<b class='flag-5'>迭代</b>背后的秘密:市場(chǎng)需求與技術(shù)創(chuàng)新如何博弈?

    英特爾AI PC處理器發(fā)布 存儲(chǔ)芯片迎國(guó)產(chǎn)化迭代機(jī)遇

    AI PC也將顯著增加更高帶寬的內(nèi)存需求,以提升整體運(yùn)算性能。由此或?qū)?lái)存儲(chǔ)領(lǐng)域芯片迭代及國(guó)產(chǎn)化機(jī)遇。
    的頭像 發(fā)表于 12-19 10:59 ?701次閱讀

    如何加速HBM仿真迭代優(yōu)化?

    如何加速HBM仿真迭代優(yōu)化?
    的頭像 發(fā)表于 11-29 16:13 ?563次閱讀
    如何加速HBM仿真<b class='flag-5'>迭代</b>優(yōu)化?

    python牛頓迭代

    牛頓迭代法是一種數(shù)值計(jì)算方法,用于求解方程的數(shù)值近似解。它是以英國(guó)科學(xué)家艾薩克·牛頓的名字命名的,最初由牛頓在17世紀(jì)末提出。牛頓
    的頭像 發(fā)表于 11-21 15:06 ?783次閱讀

    Tqdm:超方便的迭代進(jìn)度條

    Tqdm 是一個(gè)智能進(jìn)度表。它能夠顯示所有可迭代對(duì)象當(dāng)前執(zhí)行的進(jìn)度。 你只需要用 tqdm 對(duì)可迭代對(duì)象進(jìn)行封裝后再遍歷即可實(shí)現(xiàn)進(jìn)度條功能,比如說(shuō): from tqdm import tqdm
    的頭像 發(fā)表于 10-21 10:16 ?460次閱讀

    淺談華為折疊機(jī)技術(shù)迭代過(guò)程

    在討論折疊屏手機(jī)的技術(shù)迭代之前,我們必須先來(lái)看看這個(gè)市場(chǎng)——它為什么值得手機(jī)廠們搜遍天下材料,拿出航天級(jí)的鋼、鋁、鈦和碳纖維?
    發(fā)表于 10-10 09:20 ?473次閱讀
    淺談華為折疊機(jī)技術(shù)<b class='flag-5'>迭代</b>過(guò)程