如何用Python实现拉格朗日插值算法?
时间: 2024-10-24 10:11:48 浏览: 22
编程实现拉格朗日(lagrange)插值法(C语言).doc
4星 · 用户满意度95%
在Python中,你可以通过编写函数来实现拉格朗日插值算法。拉格朗日插值是一种基于多项式的方法,用于估算数据集内部的未知数值。以下是简单的步骤:
```python
def lagrange_interpolation(x_data, y_data, x):
# 检查输入数据长度是否匹配
if len(x_data) != len(y_data):
raise ValueError("x and y data lists must have the same length.")
n = len(x_data)
result = 0
# 对于每个数据点 (xi, yi),计算对应的拉格朗日基础多项式 Li(x)
for i in range(n):
li = 1
for j in range(n):
if i == j:
continue
li *= (x - x_data[j]) / (x_data[i] - x_data[j])
# 将Li(x)乘以其对应的y值并加到结果上
result += y_data[i] * li
return result
# 示例用法:
x_data = [1, 2, 3, 4]
y_data = [2, 5, 8, 9]
x_to_estimate = 2.5
interpolated_value = lagrange_interpolation(x_data, y_data, x_to_estimate)
print(f"Interpolated value at {x_to_estimate} is {interpolated_value}")
```
在这个例子中,`lagrange_interpolation`函数接受x坐标的数据列表、对应的y坐标数据列表以及需要插值的新x值。它通过计算每个数据点的拉格朗日多项式并求和,得出给定x值的估计值。
阅读全文