编写程序求 n 次 Lagrange 插值多项式。要求通过键盘输入插值基点 xi:{x0 , x1, ... , xn }和对应函数值 yi:{ y0 , y1 , … , yn },程序即可给出对应的 n 次 Lagrange 插值多项式 lag[x]。
时间: 2024-10-14 09:08:47 浏览: 38
Lagrange插值法是一种数学工具,用于计算一个n次多项式,该多项式通过给定的一组数据点(xi, yi)精确地穿过这些点。在编程中,你可以按照以下步骤编写一个简单的Python函数来实现这个功能:
```python
def lagrange_interpolation(n, points):
def lagrange_poly(x):
result = 0
for i in range(len(points)):
prod = 1
for j in range(len(points)):
if j != i:
prod *= (x - points[j]) / (points[i] - points[j])
result += points[i][1] * prod
return result
# 获取用户输入的数据点
x_values = []
y_values = []
for _ in range(n + 1):
xi = float(input(f"请输入第{i}个插值点 x_i: "))
yi = float(input(f"请输入第{i}个点的函数值 y_i: "))
x_values.append(xi)
y_values.append(yi)
# 调用lagrange_poly函数并打印结果
x = float(input("请输入你要插值的x值: "))
interpolated_y = lagrange_poly(x)
print(f"Lagrange插值多项式的值为: {interpolated_y}")
# 调用函数开始插值过程
lagrange_interpolation(n, [(x_values[0], y_values[0]), ...])
```
在这个函数中,`lagrange_poly`内部使用了拉格朗日乘积公式来计算每个数据点处的多项式值,并累加得到最终的结果。用户需要逐次输入插值点和对应的函数值。
阅读全文