最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

你知道怎么改進(jìn)Python 二分法和牛頓迭代法求算術(shù)平方根嗎

 更新時(shí)間:2021年08月31日 18:10:52   作者:Hann Yang  
這篇文章主要介紹了Python編程實(shí)現(xiàn)二分法和牛頓迭代法求平方根代碼的改進(jìn),具有一定參考價(jià)值,需要的朋友可以了解下,希望能夠給你帶來(lái)幫助

二分法

def sqrtb(n):
    if n<0: raise ValueError('n>=0')
    left,right,x=0,n,n/2
    while not -1e-15<x*x-n<1e-15:
        if x*x>n:
            right,x = x,left+(x-left)/2
        else:
            left,x = x,right-(right-x)/2
    return x

求最接近算術(shù)平方根的整數(shù)

def sqrtB(x):
    if x==0: return 0
    #y,x=x,round(x)
    left,right,ret = 1,x,0
    while left<=right:
        mid = left + (right-left)//2
        if mid<x/mid:
            left = mid+1
            ret = mid
        elif mid==x/mid:
            ret = mid
            break
        else:
            right = mid-1
    return ret

>>> sqrtB(9)
3
>>> sqrtB(8)
2
>>> sqrtB(9.2)
3.0
>>> sqrtB(7.8)
2.0
>>> sqrtB(4)
2
>>>

二分法原理

牛頓迭代法

def sqrtn(n):
    if n<0: raise ValueError('n>=0')
    x = n/2
    while not -1e-15<x*x-n<1e-15:
        x = (x+n/x)/2
    return x

一點(diǎn)小改進(jìn):不用1e-15來(lái)比較

def sqrt2(n):
    x = n
    while x*x>n:
        x = (x+n/x)/2
    return x

缺點(diǎn):碰到n=7,13,...等,會(huì)進(jìn)入死循環(huán)

增加判斷跳出循環(huán):

def sqrt(n):
    x = n
    while x*x>n:
        y,x = x,(x+n/x)/2
        if y==x: break
    return x

# sqrt(n) n=1~25的精度測(cè)試:

0.0
-2.220446049250313e-16
0.0
0.0
0.0
0.0
0.0
-4.440892098500626e-16
0.0
-4.440892098500626e-16
0.0
0.0
4.440892098500626e-16
0.0
0.0
0.0
0.0
8.881784197001252e-16
-8.881784197001252e-16
0.0
0.0
0.0
0.0
0.0
0.0
>>>

牛頓迭代法原理

從函數(shù)意義上理解:要求函數(shù)f(x)=x²,使f(x)=num的近似解,即x²-num=0的近似解。

從幾何意義上理解:要求拋物線g(x)=x²-num與x軸交點(diǎn)(g(x)=0)最接近的點(diǎn)。

假設(shè)g(x0)=0,即x0是正解,讓近似解x不斷逼近x0,x0 ~ x - f(x)/f'(x)

def cubeN(n):
    x,y = n/3,0
    while not -1e-15<x-y<1e-15:
        y,x = x,(2/3)*x+n/(3*x*x)
    return x
'''
>>> cubeN(27)
3.0
>>> cubeN(9)
2.080083823051904
>>>
'''

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Python Flask搭建yolov3目標(biāo)檢測(cè)系統(tǒng)詳解流程

    Python Flask搭建yolov3目標(biāo)檢測(cè)系統(tǒng)詳解流程

    YOLOv3沒(méi)有太多的創(chuàng)新,主要是借鑒一些好的方案融合到Y(jié)OLO里面。不過(guò)效果還是不錯(cuò)的,在保持速度優(yōu)勢(shì)的前提下,提升了預(yù)測(cè)精度,尤其是加強(qiáng)了對(duì)小物體的識(shí)別能力
    2021-11-11
  • Python如何使用Eel和HTML開發(fā)桌面應(yīng)用

    Python如何使用Eel和HTML開發(fā)桌面應(yīng)用

    這篇文章主要介紹了Python使用Eel和HTML開發(fā)桌面應(yīng)用問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • python制作mysql數(shù)據(jù)遷移腳本

    python制作mysql數(shù)據(jù)遷移腳本

    這篇文章主要為大家詳細(xì)介紹的是使用python寫的mysql數(shù)據(jù)遷移的腳本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Python實(shí)現(xiàn)生成bmp圖像的方法

    Python實(shí)現(xiàn)生成bmp圖像的方法

    本文主要介紹了Python實(shí)現(xiàn)生成bmp圖像的方法,對(duì)大家的學(xué)習(xí)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • 淺談Scrapy框架普通反爬蟲機(jī)制的應(yīng)對(duì)策略

    淺談Scrapy框架普通反爬蟲機(jī)制的應(yīng)對(duì)策略

    這篇文章主要介紹了淺談Scrapy框架普通反爬蟲機(jī)制的應(yīng)對(duì)策略,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • Python多進(jìn)程multiprocessing.Pool類詳解

    Python多進(jìn)程multiprocessing.Pool類詳解

    這篇文章主要為大家詳細(xì)介紹了Python多進(jìn)程multiprocessing.Pool類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Python繪制折線圖可視化神器pyecharts案例

    Python繪制折線圖可視化神器pyecharts案例

    這篇文章主要介紹了Python繪制折線圖可視化神器pyecharts,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • Python利用Seaborn繪制多標(biāo)簽的混淆矩陣

    Python利用Seaborn繪制多標(biāo)簽的混淆矩陣

    混淆矩陣也稱誤差矩陣,是表示精度評(píng)價(jià)的一種標(biāo)準(zhǔn)格式,用n行n列的矩陣形式來(lái)表示。本文將利用Seaborn繪制多標(biāo)簽的混淆矩陣,感興趣的可以學(xué)習(xí)一下
    2022-07-07
  • python自動(dòng)化之re模塊詳解

    python自動(dòng)化之re模塊詳解

    這篇文章主要為大家介紹了python自動(dòng)化之re模塊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • Python實(shí)現(xiàn)隨機(jī)生成有效手機(jī)號(hào)碼及身份證功能示例

    Python實(shí)現(xiàn)隨機(jī)生成有效手機(jī)號(hào)碼及身份證功能示例

    這篇文章主要介紹了Python實(shí)現(xiàn)隨機(jī)生成有效手機(jī)號(hào)碼及身份證功能,結(jié)合完整實(shí)例形式分析了Python基于手機(jī)號(hào)與身份證算法實(shí)現(xiàn)隨機(jī)手機(jī)號(hào)及身份證的生成功能,涉及Python日期、隨機(jī)數(shù)、文件讀取等相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06

最新評(píng)論

砚山县| 民县| 甘孜| 汾西县| 商洛市| 仁化县| 邳州市| 宜兴市| 蚌埠市| 东兰县| 澄迈县| 晋中市| 东乌珠穆沁旗| 榆树市| 慈溪市| 沂水县| 武穴市| 马关县| 竹山县| 鹿邑县| 娄底市| 正定县| 黄浦区| 法库县| 怀化市| 神池县| 儋州市| 新竹县| 万山特区| 格尔木市| 永胜县| 东丽区| 宜君县| 德昌县| 兰州市| 双鸭山市| 凤城市| 阜康市| 都兰县| 融水| 炎陵县|