牛頓迭代法求根C++

題目描述:

計算一個數(shù)字的立方根靡馁,不使用庫函數(shù)

首先最常見的方法是二分法進行求值,這里主要注意精度旨剥,還有就是二分法的求值,但是這種方法有時候不滿足題目給的時間復雜度的要求浅缸,那么需要一種新的方法來進行求值轨帜。
所以這里給出牛頓迭代法:

牛頓迭代法

這里應該大學都知道,一個函數(shù)f(x) = x^3-y 的可以在坐標系上畫出它的圖衩椒。


牛頓迭代法.png

隨便找一個曲線上的A點(為什么隨便找蚌父,根據(jù)切線是切點附近的曲線的近似,應該在根點附近找毛萌,但是很顯然我們現(xiàn)在還不知道根點在哪里)苟弛,做一個切線,切線的根(就是和x軸的交點)與曲線的根朝聋,還有一定的距離嗡午。牛頓囤躁、拉弗森們想冀痕,沒關(guān)系,我們從這個切線的根出發(fā)狸演,做一根垂線言蛇,和曲線相交于B點,繼續(xù)重復剛才的工作:

牛頓迭代法2.png

之前說過宵距,B點比之前A點更接近曲線的根點腊尚,牛頓、拉弗森們很興奮满哪,繼續(xù)重復剛才的工作:
經(jīng)過多次迭代后會越來越接近曲線的根(下圖進行了50次迭代婿斥,哪怕經(jīng)過無數(shù)次迭代也只會更接近曲線的根,用數(shù)學術(shù)語來說就是哨鸭,迭代收斂了):

眾所周知民宿,f'(x) 是f(x)的導數(shù),也是在某點上的一個切線方程像鸡。
牛頓它們根據(jù)上面的方法活鹰,不斷的逼近根的方法,可以總結(jié)為以下的表示方法只估。

Xn+1 = Xn - f(Xn)/ f'(Xn)

從而對于求立方根的時候志群,我們可以假設

f(x) = X^3 - y

求y的立方根表示, f(x)=0的時候蛔钙,求x的值這樣的數(shù)學模型锌云。
根據(jù)上面的公式,我們可以得到

Xn+1 =  Xn- (Xn^3 -y)/(3*Xn^2) = (2*Xn +y/(Xn*Xn))/3

根絕這里的公式吁脱,我們就可以寫出立方根的解法了桑涎。

#include <iostream>
using namespace std;

// 牛頓迭代法
// f(x) = X^3 - y, 當f(x) =0時,求x
// 根據(jù)牛頓迭代法子漩。Xn+1 = Xn - f(Xn)/ f'(Xn)
// 所以 xn+1 =  x- (X^3 -y)/(3X^2) = X*2/3 + y/(*X^2) * 1/3
// Xn+1 = (X)/3
inline double abs(double x){return (x>0?x:-x);}
double getcudeRoot(double y) {
   double x =1.0;
   for (x = 1.0; abs(x*x*x -y) > 1e-6; x=(2*x+y/x/x)/3);
   return x;
}


int main() {
    double input;
    while (cin >> input) {
        printf("%.1f\n", getcudeRoot(input));
    }
    return 0;
}

參考:
牛頓迭代法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市石洗,隨后出現(xiàn)的幾起案子幢泼,更是在濱河造成了極大的恐慌,老刑警劉巖讲衫,帶你破解...
    沈念sama閱讀 212,686評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缕棵,死亡現(xiàn)場離奇詭異,居然都是意外死亡涉兽,警方通過查閱死者的電腦和手機招驴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來枷畏,“玉大人别厘,你說我怎么就攤上這事∮倒睿” “怎么了触趴?”我有些...
    開封第一講書人閱讀 158,160評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長渴肉。 經(jīng)常有香客問我冗懦,道長,這世上最難降的妖魔是什么仇祭? 我笑而不...
    開封第一講書人閱讀 56,736評論 1 284
  • 正文 為了忘掉前任披蕉,我火速辦了婚禮,結(jié)果婚禮上乌奇,老公的妹妹穿的比我還像新娘没讲。我一直安慰自己,他們只是感情好礁苗,可當我...
    茶點故事閱讀 65,847評論 6 386
  • 文/花漫 我一把揭開白布爬凑。 她就那樣靜靜地躺著,像睡著了一般寂屏。 火紅的嫁衣襯著肌膚如雪贰谣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,043評論 1 291
  • 那天迁霎,我揣著相機與錄音吱抚,去河邊找鬼。 笑死考廉,一個胖子當著我的面吹牛秘豹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播昌粤,決...
    沈念sama閱讀 39,129評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼既绕,長吁一口氣:“原來是場噩夢啊……” “哼啄刹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起凄贩,我...
    開封第一講書人閱讀 37,872評論 0 268
  • 序言:老撾萬榮一對情侶失蹤誓军,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后疲扎,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體昵时,經(jīng)...
    沈念sama閱讀 44,318評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,645評論 2 327
  • 正文 我和宋清朗相戀三年椒丧,在試婚紗的時候發(fā)現(xiàn)自己被綠了壹甥。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,777評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡壶熏,死狀恐怖句柠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情棒假,我是刑警寧澤溯职,帶...
    沈念sama閱讀 34,470評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站淆衷,受9級特大地震影響缸榄,放射性物質(zhì)發(fā)生泄漏渤弛。R本人自食惡果不足惜祝拯,卻給世界環(huán)境...
    茶點故事閱讀 40,126評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望她肯。 院中可真熱鬧佳头,春花似錦、人聲如沸晴氨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,861評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽籽前。三九已至亭珍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間枝哄,已是汗流浹背肄梨。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留挠锥,地道東北人众羡。 一個月前我還...
    沈念sama閱讀 46,589評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像蓖租,于是被迫代替她去往敵國和親粱侣。 傳聞我的和親對象是個殘疾皇子羊壹,可洞房花燭夜當晚...
    茶點故事閱讀 43,687評論 2 351