欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用Python實現(xiàn)Newton插值法

 更新時間:2021年04月16日 14:40:13   作者:Amiyai  
最近在做數(shù)值分析的作業(yè),作業(yè)里面的小數(shù)點讓計算能力本就薄弱的我雪上加霜,為了偷個小懶快速把作業(yè)完成,所以有了這篇博客。哈哈哈哈哈,讓我們一起復(fù)制copy,完成作業(yè),哈哈哈哈需要的朋友可以參考下

1. n階差商實現(xiàn)

def diff(xi,yi,n):
    """
    param xi:插值節(jié)點xi
    param yi:插值節(jié)點yi
    param n: 求幾階差商
    return: n階差商
    """
    if len(xi) != len(yi):  #xi和yi必須保證長度一致
        return
    else:
        diff_quot = [[] for i in range(n)]
        for j in range(1,n+1):
            if j == 1:
                for i in range(n+1-j):
                    diff_quot[j-1].append((yi[i]-yi[i+1]) / (xi[i] - xi[i + 1]))
            else:
                for i in range(n+1-j):
                    diff_quot[j-1].append((diff_quot[j-2][i]-diff_quot[j-2][i+1]) / (xi[i] - xi[i + j]))
    return diff_quot

測試一下:

xi = [1.615,1.634,1.702,1.828]
yi = [2.41450,2.46259,2.65271,3.03035]
n = 3
print(diff(xi,yi,n))

返回的差商結(jié)果為:

[[2.53105263157897, 2.7958823529411716, 2.997142857142854], [3.0440197857724347, 1.0374252793901158], [-9.420631485362996]]

2. 牛頓插值實現(xiàn)

def Newton(x):
    f = yi[0]
    v = []
    r = 1
    for i in range(n):
        r *= (x - xi[i])
        v.append(r)
        f += diff_quot[i][0] * v[i]
    return f

測試一下:

x = 1.682
print(Newton(x))

結(jié)果為:

2.5944760289639732

3.完整Python代碼

def Newton(xi,yi,n,x):
    """
    param xi:插值節(jié)點xi
    param yi:插值節(jié)點yi
    param n: 求幾階差商
    param x: 代求近似值
    return: n階差商
    """
    if len(xi) != len(yi):  #xi和yi必須保證長度一致
        return
    else:
        diff_quot = [[] for i in range(n)]
        for j in range(1,n+1):
            if j == 1:
                for i in range(n+1-j):
                    diff_quot[j-1].append((yi[i]-yi[i+1]) / (xi[i] - xi[i + 1]))
            else:
                for i in range(n+1-j):
                    diff_quot[j-1].append((diff_quot[j-2][i]-diff_quot[j-2][i+1]) / (xi[i] - xi[i + j]))
    print(diff_quot)
    
    f = yi[0]
    v = []
    r = 1
    for i in range(n):
        r *= (x - xi[i])
        v.append(r)
        f += diff_quot[i][0] * v[i]
    return f

到此這篇關(guān)于用Python實現(xiàn)牛頓插值法的文章就介紹到這了,更多相關(guān)python牛頓插值法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實現(xiàn)隨機(jī)生成任意數(shù)量車牌號

    Python實現(xiàn)隨機(jī)生成任意數(shù)量車牌號

    這篇文章主要介紹了Python實現(xiàn)隨機(jī)生成任意數(shù)量車牌號,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • 詳解Python是如何處理不同時區(qū)的

    詳解Python是如何處理不同時區(qū)的

    時區(qū)是指在地球上不同地方的時間差異,地球分為?24?個時區(qū),每個時區(qū)都相對于格林威治標(biāo)準(zhǔn)時間或協(xié)調(diào)世界時(UTC)有所偏移。本文主要和大家來聊聊Python是如何處理不同時區(qū)的,希望對大家有所幫助
    2023-02-02
  • 詳解Python小數(shù)據(jù)池和代碼塊緩存機(jī)制

    詳解Python小數(shù)據(jù)池和代碼塊緩存機(jī)制

    這篇文章主要介紹了詳解Python 小數(shù)據(jù)池和代碼塊緩存機(jī)制的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • 如何真正的了解python裝飾器

    如何真正的了解python裝飾器

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于如何真正的了解python裝飾器的相關(guān)文章,需要的朋友們可以參考下。
    2020-08-08
  • 解決Pytorch半精度浮點型網(wǎng)絡(luò)訓(xùn)練的問題

    解決Pytorch半精度浮點型網(wǎng)絡(luò)訓(xùn)練的問題

    這篇文章主要介紹了解決Pytorch半精度浮點型網(wǎng)絡(luò)訓(xùn)練的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python自定義類并使用的方法

    python自定義類并使用的方法

    這篇文章主要介紹了python自定義類并使用的方法,涉及Python中類的定義與使用技巧,需要的朋友可以參考下
    2015-05-05
  • python zip()函數(shù)的使用示例

    python zip()函數(shù)的使用示例

    這篇文章主要介紹了python zip()的使用示例,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-09-09
  • python批量解壓zip文件的方法

    python批量解壓zip文件的方法

    這篇文章主要介紹了python批量解壓zip文件的方法,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • Python和Golang協(xié)程的區(qū)別

    Python和Golang協(xié)程的區(qū)別

    這篇文章主要為大家介紹了Python和Golang協(xié)程的區(qū)別示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 2023巨詳細(xì)的Python安裝庫教程(以pycharm和Anaconda安裝pygame為例)

    2023巨詳細(xì)的Python安裝庫教程(以pycharm和Anaconda安裝pygame為例)

    這篇文章主要給大家介紹了巨詳細(xì)的Python安裝庫教程,文中以pycharm和Anaconda安裝pygame為例,通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01

最新評論