线性插值python代码编写
时间: 2024-03-14 16:41:40 浏览: 19
线性插值是一种常用的插值方法,可以用于在给定的数据点之间估计未知点的值。下面是一个简单的线性插值的Python代码示例:
```python
def linear_interpolation(x, x_values, y_values):
"""
线性插值函数
:param x: 待插值的点
:param x_values: 已知数据点的x坐标列表
:param y_values: 已知数据点的y坐标列表
:return: 插值结果
"""
if len(x_values) != len(y_values):
raise ValueError("x_values和y_values的长度不一致")
n = len(x_values)
if n < 2:
raise ValueError("至少需要两个数据点")
# 寻找x所在的区间
i = 0
while i < n and x > x_values[i]:
i += 1
if i == 0:
return y_values[0]
elif i == n:
return y_values[n - 1]
else:
# 线性插值计算
x0, x1 = x_values[i - 1], x_values[i]
y0, y1 = y_values[i - 1], y_values[i]
return y0 + (y1 - y0) * (x - x0) / (x1 - x0)
# 示例数据
x_values = [1, 2, 3, 4, 5]
y_values = [10, 20, 30, 40, 50]
# 调用线性插值函数
x = 2.5
result = linear_interpolation(x, x_values, y_values)
print(f"插值结果:{result}")
```
这段代码定义了一个`linear_interpolation`函数,接受待插值的点`x`、已知数据点的x坐标列表`x_values`和已知数据点的y坐标列表`y_values`作为参数。函数首先判断输入的数据点是否合法,然后根据输入的x值在已知数据点中找到对应的区间,进行线性插值计算,最后返回插值结果。