當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 小麥大叔
[導(dǎo)讀]前面剛轉(zhuǎn)了一篇文章提到了牛頓-拉夫遜(拉弗森)(Newton-Raphson method)方法,感覺(jué)這個(gè)數(shù)學(xué)方法很有必要相對(duì)深入寫(xiě)一篇文章來(lái)總結(jié)分享印證一下自己的理解。

關(guān)注、星標(biāo) 嵌入式客棧 ,精彩及時(shí)送達(dá)

[導(dǎo)讀] 前面剛轉(zhuǎn)了一篇文章提到了牛頓-拉夫遜(拉弗森)(Newton-Raphson method)方法,感覺(jué)這個(gè)數(shù)學(xué)方法很有必要相對(duì)深入寫(xiě)一篇文章來(lái)總結(jié)分享印證一下自己的理解。這是寫(xiě)本文的由來(lái),如果發(fā)現(xiàn)文章中有錯(cuò)誤之處,請(qǐng)留言交流討論。

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

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


牛頓

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

所以,牛頓迭代法(簡(jiǎn)寫(xiě))就是一種近似求解實(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)推,直到求得滿(mǎn)足精度的近似解為止。


由前面描述知道,牛頓迭代法是用來(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í)候停止迭代呢?

  1. 計(jì)算出

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

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

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

如何編碼呢?

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

假定一函數(shù)為

其波形圖如下:

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

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

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

#include?
#include?
#include?

/*假定待求根函數(shù)如下*/
#define????F(x)????(2*(x)*(x)-10*cos(x)+(x)-80)

/*其一階導(dǎo)數(shù)為*/
#define???DF(x)????(4*(x)+10*sin(x)+1)

float?newton_rooting(float?x0,float?precision,float?min_deltax,int?max_iterations)
{
?????float?xn,xn1,fn,fn1,dfn;
?????float?deltax;
?????int?step?=?0;
?????xn??=?x0;
?????xn1?=?x0;
?????do{
???????xn??=?xn1;
???????fn??=?F(xn);
???????dfn?=?DF(xn);
???????/*判0*/
???????if(?fabs(dfn)?<1e-6?)
???????{
????????????if(?fabs(fn)>precision?)
????????????????return?NAN;
????????????else
????????????????return?fn;
???????}

???????xn1?=?xn?-?fn/dfn;
???????fn1?=?F(xn1);
???????deltax?=?fabs(xn1-xn);
???????
???????step++;
???????if(?step>max_iterations?)
???????{
???????????if(?fabs(fn1)???????????????return?xn;
???????????else
???????????????return?NAN;
???????}
?????}
?????while(?fabs(fn1)>precision?||?deltax>min_deltax?);

?????return?xn1;
}

void?main()
{
?????float?root_guess?=?23.0f;
?????float?precision?=?0.00001f;
?????float?min_deltax?=?0.001f;
?????float?root;
?????int?step?=?7;

?????root?=?newton_rooting(?root_guess,precision,min_deltax,step?);
?????printf("根為:?%f,函數(shù)值為:%f\n",?root,F(root));

?????root_guess?=?-23;
?????root?=?newton_rooting(?root_guess,precision,min_deltax,step?);
?????printf("根為:?%f,函數(shù)值為:%f\n",?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方法可能開(kāi)始偏離根。然后,它可能會(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í)際問(wèn)題時(shí),利用迭代求方程近似根的數(shù)學(xué)原理,在工程中有著很好的實(shí)用價(jià)值。比如求一個(gè)趨勢(shì)的極值,傳遞函數(shù)參數(shù)辨識(shí)等都有廣泛的實(shí)際應(yīng)用。本文拋磚引玉,有可能文章也有很多錯(cuò)誤疏漏的地方,如有不同看法或者發(fā)現(xiàn)錯(cuò)誤,歡迎留言交流指正。

END
往期精彩推薦,點(diǎn)擊即可閱讀




▲Linux驅(qū)動(dòng)相關(guān)專(zhuān)輯 ?
手把手教信號(hào)處理專(zhuān)輯
片機(jī)相關(guān)專(zhuān)輯

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉