给出一组数据,用Lagrange插值法求 n 次插值多项式的代码
时间: 2024-12-18 20:16:38 浏览: 4
转发:doolittle.zip_lagrange_lagrange插值法_数值分析代码
Lagrange插值法是一种通过给定n+1个数据点来构造一个n次多项式,使得该多项式在每个数据点处的函数值等于给定的数据。以下是使用Python实现Lagrange插值的基本步骤:
```python
def lagrange_interpolation(x_data, y_data, x):
# 计算拉格朗日基本多项式
def basis_poly(i, x):
prod = 1
for j in range(len(x_data)):
if i != j:
prod *= (x - x_data[j]) / (x_data[i] - x_data[j])
return prod
# 根据x_data计算对应的y_data多项式系数
polynomial = sum(y_data[i] * basis_poly(i, x) for i in range(len(x_data)))
return polynomial
# 示例数据
x_data = [1, 2, 3, 4]
y_data = [2, 5, 10, 17]
x_value_to_interpolate = 2.5
# 使用拉格朗日插值法
interpolated_value = lagrange_interpolation(x_data, y_data, x_value_to_interpolate)
print(f"当x={x_value_to_interpolate}时,插值后的值为: {interpolated_value}")
阅读全文