拉格朗日插值法估算并计算误差代码
时间: 2024-02-18 20:33:47 浏览: 74
Python代码 - 求拉格朗日插值函数及图像、并进行误差估计
5星 · 资源好评率100%
以下是使用拉格朗日插值法进行函数估算和误差计算的 Python 代码示例:
```python
import numpy as np
def lagrange_interpolation(x, y, x_eval):
"""
使用拉格朗日插值法进行函数估算
:param x: 数据点的 x 坐标
:param y: 数据点的 y 坐标
:param x_eval: 需要估算的 x 坐标
:return: 估算的 y 值
"""
n = len(x)
y_eval = 0.0
for i in range(n):
L = 1.0
for j in range(n):
if j != i:
L *= (x_eval - x[j]) / (x[i] - x[j])
y_eval += y[i] * L
return y_eval
def lagrange_error(x, y, x_eval, true_func):
"""
使用拉格朗日插值法计算误差
:param x: 数据点的 x 坐标
:param y: 数据点的 y 坐标
:param x_eval: 需要估算的 x 坐标
:param true_func: 实际函数
:return: 估算误差
"""
y_eval = lagrange_interpolation(x, y, x_eval)
true_value = true_func(x_eval)
error = abs(y_eval - true_value)
return error
# 示例:估算 sin(x) 在 x=1.5 处的值,并计算误差
x = np.array([1.0, 1.2, 1.4, 1.6, 1.8])
y = np.sin(x)
x_eval = 1.5
true_value = np.sin(x_eval)
estimated_value = lagrange_interpolation(x, y, x_eval)
error = lagrange_error(x, y, x_eval, np.sin)
print("真实值:", true_value)
print("估算值:", estimated_value)
print("误差:", error)
```
上述示例中,我们使用拉格朗日插值法估算了 $\sin(x)$ 在 $x=1.5$ 处的值,并计算了估算误差。可以根据需要修改输入的数据点和实际函数,进行不同的函数估算和误差计算。
阅读全文