不多話。nowton插值多項式(非等距節點)**:
1#-*- coding: utf-8 -*-
2"""
3created on wed mar 25 15:43:42 202045
@author: 35035
6"""78
9import
numpy as np
1011
#newton插值多項式
12def
newton_iplt(x, y, xi):
13"""
x,y是插值節點array,xi是乙個值
"""14
15 n =len(x)
16 m =len(y)
17if n !=m:
18print('
error!')
19return
none20#
先計算差商表(cs)
21 cs =
22 temp =y.copy()
23for i in
range(n):
24if i !=0:
25 iv_1 = temp[i - 1]
26for j in
range(i, n):
27 iv_2 =temp[j]
28 temp[j] = (iv_2 - iv_1) / (x[j] - x[j -i])
29 iv_1 =iv_2
3031
#再計算newton插值
32 ans =0
33for i in
range(n):
34 w = 1 35#
計算多項式部分,讓差商表作為其係數
36for j in
range(i):
37 w *= (xi -x[j])
38 ans += w*cs[i]
39return
ans4041#
當對多個值使用newton插值時,使用map()建立對映:42#
iterator = map(newton, iterable)
4344
#數值運算時使用float參與運算,dtype定為內建float
4546 x = np.array((100, 121), dtype =float)
47 y = np.array((10, 11), dtype =float)
48print(newton_iplt(x, y, 115))
4950 x = np.array((1,2,3,4,5,6), dtype=float)
51 y = np.array((1.0, 1.2599, 1.4422, 1.5874, 1.71, 1.8171), dtype=float)
52print(newton_iplt(x, y, 5.6))53#
結果:10.71428 1.7754 測試成功!
在nowton插值多項式中,差商表的計算至關重要,而對於等距節點的newton插值,則轉為計算差分表。
插值多項式例子
給定函式 ex 在區間 1,1 上的資料表如下 x 101 f x 0.3679 1.0000 2.7182f x 0.3679 1.0000 2.7182 給出 hermite 插值多項式,並計算其誤差。mathematica code create by zzw clear f,f1,a her...
lagrange插值多項式
簡潔版 hanshu input 請輸入函式f x s fprintf 請輸入差值區間最小值 n xmin input fprintf 請輸入差值區間最大值 n xmax input fprintf 請輸入等分份數 n n input fprintf 請輸入自變數x n xin input h xm...
計算方法 牛頓插值多項式
問題描述 考慮 0,4 內的函式y f x cos x 利用多個 4 5等 節點構造牛頓插值多項式。輸入形式 在螢幕上依次輸入在區間 0,4 內的乙個值x 構造插值多項式後求其p x 值,和多個節點的x座標。輸出形式 輸出牛頓插值多項式係數向量,差商矩陣和p x 值 保留小數點後6位有效數字 樣例1...