拉格朗日差值的python实现代码
时间: 2024-10-16 22:00:58 浏览: 27
拉格朗日插值法与python实现
5星 · 资源好评率100%
拉格朗日插值法是一种通过构建一组多项式函数来近似数据点之间关系的经典数值分析技术。在Python中,你可以使用numpy库来轻松实现这个算法。以下是一个简单的拉格朗日插值的例子:
```python
import numpy as np
def lagrange_interpolation(points, x):
"""
使用拉格朗日插值计算给定x值处的函数值。
points: n+1维数组,包含(x_i, y_i)对,i从0到n
x: 需要插值的单个值
"""
# 确保输入是二维数组,并有正确的维度
if len(np.shape(points)) != 2 or np.shape(points)[1] != 2:
raise ValueError("points should be a (n+1)x2 array")
n = len(points) - 1
result = 0
for i in range(n + 1):
# 计算每个拉格朗日乘子
l_i = 1
for j in range(n + 1):
if j != i:
l_i *= (x - points[j][0]) / (points[i][0] - points[j][0])
# 将拉格朗日乘子与对应的数据点y值相乘并累加
result += points[i][1] * l_i
return result
# 示例
points = [(0, 1), (1, 3), (2, 5)]
x = 1.5
interpolated_value = lagrange_interpolation(points, x)
print(f"Interpolated value at x={x}: {interpolated_value}")
阅读全文