Python 牛顿/Newton插值法
代码
"""
本函数用于通过牛顿插值法计算某点的函数值
先计算函数每一级的差商,然后计算函数值
"""
# 存放自变量x的值 data 用于存放函数值以及差商
x = [0,2,3,5,6]
data = [[0,8,27,125,216]]
# 用于存放待求值点 以及 计算结果
x_f = 5.5
fun = 0
# 计算每一级的差商
for i in range(1, len(x)):
f = []
for k in range(len(x) - i):
k = -(k+1)
c = abs((data[i-1][k]-data[i-1][k-1])/(x[k] - x[k - i]))
f.append(c)
f.reverse()
data.append(f)
# 依次通过差商计算结果
for i in range(len(data)):
upper = 1
for j in range(i):
upper *= (x_f - x[j])
fun += data[i][0] * upper
print('点 {0} 在此函数的插值结果为:{1}'.format(x_f,fun))