牛顿插值法python作图
时间: 2023-10-17 09:06:56 浏览: 40
好的,以下是牛顿插值法的 Python 代码和作图过程:
```python
import numpy as np
import matplotlib.pyplot as plt
def newton_interpolation(x, y, x_eval):
n = len(x)
F = np.zeros([n,n])
F[:,0] = y
for j in range(1,n):
for i in range(j,n):
F[i][j] = (F[i][j-1]-F[i-1][j-1])/(x[i]-x[i-j])
y_eval = F[0][0]
w = 1.0
for j in range(1,n):
w = w*(x_eval-x[j-1])
y_eval = y_eval + F[0][j]*w
return y_eval
# Example
x = [0, 1, 3, 6]
y = [-1, 0, 2, 9]
x_eval = np.linspace(0, 6, num=100)
y_eval = [newton_interpolation(x, y, i) for i in x_eval]
plt.plot(x_eval, y_eval)
plt.scatter(x, y)
plt.show()
```
这段代码实现了牛顿插值法,并同时作出了插值函数的图像。先定义了一个`newton_interpolation`函数,它接收三个参数:样本点的 x 坐标、样本点的 y 坐标以及要求插值函数的横坐标。然后用这些样本点求解出差商表并返回插值函数的纵坐标。最后用`numpy`库里的`linspace`函数生成了一系列横坐标,再调用`newton_interpolation`函数得到对应的纵坐标,并画出图像。