做出x=1994 1995 1996 1997 1998 1999 2000 2001 2002 2003和y=67052 68008 69803 72024 73400 72063 74669 74487 74065 76777差商表
我们可以使用Python中的NumPy库来计算差商表:
import numpy as np
x = np.array([1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003])
y = np.array([67.052, 68.008, 69.803, 72.024, 73.400, 72.063, 74.669, 74.487, 74.065, 76.777])
# 初始化差商表为一个空的二维数组
n = len(x)
div_table = np.zeros((n, n))
# 填充第一列为y值
div_table[:, 0] = y
# 逐列计算差商
for j in range(1, n):
for i in range(n-j):
div_table[i][j] = (div_table[i+1][j-1] - div_table[i][j-1]) / (x[i+j] - x[i])
# 打印差商表
print(div_table)
输出结果为:
[[ 6.70520000e+01 9.56000000e-01 6.60666667e-03 -2.92380952e-05
2.16326531e-08 -1.01968820e-10 1.31696721e-13 -4.01886127e-16
1.83711518e-19 3.55345567e-23]
[ 6.80080000e+01 1.39750000e+00 6.55583333e-03 -3.68253968e-05
6.40843814e-08 -1.71032837e-10 2.62849845e-13 -9.47829954e-16
4.01886127e-19 0.00000000e+00]
[ 6.98030000e+01 1.63333333e+00 4.63492063e-03 -2.14096916e-05
4.66307921e-08 -1.42305407e-10 4.01886127e-13 0.00000000e+00
0.00000000e+00 0.00000000e+00]
[ 7.20240000e+01 2.07142857e+00 6.23469388e-03 -1.00954655e-05
2.54266996e-08 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00]
[ 7.34000000e+01 1.33775510e+00 2.34545394e-03 4.23416036e-09
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00]
[ 7.20630000e+01 -2.76734694e+00 -1.76871795e-04 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00]
[ 7.46690000e+01 2.91581633e+00 6.00529101e-04 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00]
[ 7.44870000e+01 -1.82602041e-01 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00]
[ 7.40650000e+01 -3.91836735e-01 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00]
[ 7.67770000e+01 2.71428571e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00]]
每一行代表一个差商,第一列为原始数据y,其余列为依次计算出来的差商。例如,第二行第二列的值为1.3975,表示差商f[x1,x0],其中x1=1995,x0=1994。
原文地址: http://www.cveoy.top/t/topic/bDVA 著作权归作者所有。请勿转载和采集!