牛顿插值多项式实现python代码
时间: 2024-10-09 17:01:26 浏览: 7
牛顿插值法是一种通过已知数据点构建多项式函数来近似连续函数的数学技术。在Python中,我们可以使用numpy库来实现。以下是使用三个点(x0, y0), (x1, y1), 和 (x2, y2)创建二次(线性、二次)牛顿插值多项式的简单示例:
```python
import numpy as np
def newton_interpolation(points):
"""
Newton's Interpolation using numpy for a quadratic polynomial
:param points: List of tuples [(x0, y0), (x1, y1), (x2, y2)]
:return: Quadratic polynomial function
"""
x = [p[0] for p in points]
y = [p[1] for p in points]
# Calculate coefficients
A = np.array([[x[0]**2, x[0], 1],
[x[1]**2, x[1], 1],
[x[2]**2, x[2], 1]])
b = np.array([y[0], y[1], y[2]])
# Solve the system of equations to get the coefficients
coefficients = np.linalg.solve(A, b)
def interpolate(x_val):
return coefficients[0]*x_val**2 + coefficients[1]*x_val + coefficients[2]
return interpolate
# Example usage
points = [(0, 0), (1, 1), (2, 4)]
quad_poly = newton_interpolation(points)
print(quad_poly(1.5)) # Output: The approximate value at x=1.5