东南大学数值分析上机作业7
时间: 2025-01-02 16:29:59 浏览: 4
### 东南大学数值分析课程第七次上机作业题目及要求
#### Python 实现的具体任务
第七次上机作业主要围绕插值法展开,具体涉及拉格朗日插值多项式的编写与应用。学生需完成如下几个方面的工作:
- 编写函数 `lagrange_interpolation` 来计算给定数据点集上的拉格朗日插值多项式[^1]。
```python
def lagrange_interpolation(x, y, xi):
n = len(x)
L = lambda z: sum(y[j] * \
prod([(z - x[m]) / (x[j] - x[m]) for m in range(n) if m != j])
for j in range(n))
return L(xi)
```
此部分旨在考察对于理论公式的理解程度以及将其转化为实际可执行代码的能力。
#### 数据准备与处理
提供一组实验数据用于测试所编写的算法性能,并验证其准确性。通常会给出若干组不同特征的数据集合供练习者选用,比如均匀分布节点、随机分布节点等情形下的样本点坐标列表[(xi,yi)]作为输入参数传递给上述定义的方法来进行求解操作。
#### 结果可视化展示
为了更直观地呈现所得结果,在最后还需要利用Matplotlib库或其他绘图工具绘制出原始离散点及其对应的拟合曲线图像以便于观察对比效果如何;同时也可以通过误差估计来进一步评估模型的好坏优劣之处。
```python
import matplotlib.pyplot as plt
plt.scatter(x, y, color='red') # 原始数据点
xfit = np.linspace(min(x), max(x), 50)
yfit = [lagrange_interpolation(x, y, i) for i in xfit]
plt.plot(xfit, yfit, label="Lagrange Interpolation")
plt.legend()
plt.show()
```
阅读全文