補間方法 - ニュートン補間(非等距離ノード)

いくつかの単語の。

Nowton補間多項式(非等距離ノード)コード:

1  - * -コーディング:UTF-8 - * - 
2  "" " 
3。 作成し、マル水25午前15時43分42秒2020 ON
 4。 
5  :@author 35035
 6。 """ 
7。 
8。 
9。 インポートnumpyのNP AS
 10  
11。  ニュートン補間多項式
12である DEF Newton_iplt(X、Y、XI):
 13は     " "" X、Yは、補間ノードアレイは、XIがの値である""" 
14      
15      N- = LEN(X)
 16      、M = LEN(Y)
 。17      IF N- != メートル:
 18は、         印刷' エラー!'19          リターンなし
 20はありません     算出された第1の差分商テーブル(CS)
21は      CS = []
 22である      TEMP = y.copy()
 23である     ため I におけるレンジ(N):
 24          用の J レンジ(N-I):
 25              IF I! = 0:
 26である                  TEMP [J] =(TEMP [J] - TEMP [J - 1])/(X [J] - X [J - I])
 27          cs.append(TEMP [I])
 28      #の再計算ニュートン補間
29      ANS = 0
 30      のための I におけるレンジ(N):
 31であります         。W = 1   
 32          評価多項式部分、その結果、差分商テーブル係数として
33がある         ために J レンジ(I):
 34である              W * =(XI - X [J])
 35          ANS + = W * CS [I]
 36      リターンANS
 37 [  
38である マップを用いてラグランジュ補間を用いて、複数の値は、()のマッピングを確立するとき:
39  イテレータ=マップ(ラグランジュ、反復処理可能)
40  
41である 。#内蔵DTYPEフロートとして、コンピューティングに関与使用float値算出
42は X = NP .ARRAYは((100、121)、DTYPE = フロート)
 43が Y = np.array((10 ,. 11)、DTYPE = フロート)
 44が プリント(Newton_iplt(X、Y、115))
 45  #のテストに成功!

在Nowton插值多项式中,差商表的计算至关重要,而对于等距节点的Newton插值,则转为计算差分表。

おすすめ

転載: www.cnblogs.com/Black-treex/p/12571929.html