日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

求根号m(巴比伦算法)

發布時間:2023/12/1 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 求根号m(巴比伦算法) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

巴比倫算法是針對求根號m的近似值情況的,它的思想是這樣的:

  設根號m=X0,則如果枚舉有答案X(X<X0),則m/X>X0,當精度要求不高的時候,我們可以看成X=m/X=X0,而如果精度要求比較高,我們只需取X和m/X的平均值作為新的枚舉答案X再進行操作,可以證明這樣會一直逼近答案,至于做幾次完全取決于精度要求。而實踐證明這樣求根號的速度極快

% 計算數字m的平方根的巴比倫算法:?

% (1)先猜一個答案guess(可以將m/2作為第一個答案);

% (2)計算r=m/guess;?

% (3)令guess=(guess+r)/2;?

% (4)如有必要返回第2步重復多次。步驟2和步驟3的重復次數越多, guess就越接近m的平方根。

—————————————————————————————————————————————————————————————————————————

然后本渣又想到能不能推廣到n次方根,和HZH大神討論無果后又問大神,大神給出了……一個解答……:

算法的正確性依賴于x=sqrt(N)為差分方程a(n+1)=(an+N/an)/2的吸引不動點吧,如果推廣到高次根可能會使耗散力增加而導致周期倍分叉而不可做吧

(PS:本渣真是數學弱爆了完全讀不懂,這里mark一下希望以后能看懂……(眾:你這渣渣一輩子都不懂……))

額用人話解釋一下:由于2次根號太特殊所以高次根號不能推廣(BY YJT大神)

?

但不久后,vfk大神有說:

如果我沒有腦殘的話……


真相是,那家伙就是牛頓迭代


f(x) = x^2 - a
f'(x) = 2x
所以式子為
x' = x - (x^2 - a) / (2x) = (x + a / x) / 2


所以說,要想拓展到m次……
f(x) = x^m - a
f'(x) = m * x^(m - 1)
所以式子為
x' = x - (x^m - a) / (m * x^(m - 1)) = x * (1 - 1 / m) + a / (m * x^(m - 1))
只要初始估計充分接近根就可以獲得很好的效果……看起來abs(f''(r) / (2 * f'(r)))不是很大的樣子


大家好我是不會證其無論取何初始值一定收斂的sb

(PS:雖然本渣看不懂但是Vfk說的大概是取適當的初始貌似可以……)

轉載于:https://www.cnblogs.com/wmrv587/p/3531792.html

總結

以上是生活随笔為你收集整理的求根号m(巴比伦算法)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。