国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:4日期:2022-06-22 10:19:10
1. n階差商實(shí)現(xiàn)

def diff(xi,yi,n): ''' param xi:插值節(jié)點(diǎn)xi param yi:插值節(jié)點(diǎn)yi param n: 求幾階差商 return: n階差商 ''' if len(xi) != len(yi): #xi和yi必須保證長(zhǎng)度一致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

測(cè)試一下:

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

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

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

2. 牛頓插值實(shí)現(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

測(cè)試一下:

x = 1.682print(Newton(x))

結(jié)果為:

2.5944760289639732

3.完整Python代碼

def Newton(xi,yi,n,x): ''' param xi:插值節(jié)點(diǎn)xi param yi:插值節(jié)點(diǎn)yi param n: 求幾階差商 param x: 代求近似值 return: n階差商 ''' if len(xi) != len(yi): #xi和yi必須保證長(zhǎng)度一致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實(shí)現(xiàn)牛頓插值法的文章就介紹到這了,更多相關(guān)python牛頓插值法內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 左贡县| 宁海县| 潼关县| 额尔古纳市| 乐平市| 乌拉特中旗| 安多县| 得荣县| 永宁县| 黄大仙区| 兖州市| 常山县| 河北省| 隆安县| 佳木斯市| 马公市| 光山县| 霍州市| 延川县| 额敏县| 中超| 建平县| 司法| 千阳县| 贞丰县| 凤山县| 云浮市| 梨树县| 麟游县| 洪雅县| 正阳县| 靖边县| 拉孜县| 丰城市| 隆德县| 湛江市| 宜兰市| 承德市| 蓝山县| 鹿邑县| 隆子县|