给出一组数据x=[-1,-0.96,-0.62,0.1,0.4,1],y=[-1,-0.1512,0.386,0.4802,0.8838,1],分别使用2~5次多项式对其进行多项式拟合,绘制出拟合曲线。
时间: 2024-05-24 08:11:08 浏览: 160
多项式拟合曲线
3星 · 编辑精心推荐
以下为Python代码实现:
```python
import numpy as np
import matplotlib.pyplot as plt
# 数据
x = np.array([-1, -0.96, -0.62, 0.1, 0.4, 1])
y = np.array([-1, -0.1512, 0.386, 0.4802, 0.8838, 1])
# 多项式拟合
f2 = np.polyfit(x, y, 2)
f3 = np.polyfit(x, y, 3)
f4 = np.polyfit(x, y, 4)
f5 = np.polyfit(x, y, 5)
# 绘制拟合曲线
xx = np.linspace(-1, 1, 1000)
y2 = np.polyval(f2, xx)
y3 = np.polyval(f3, xx)
y4 = np.polyval(f4, xx)
y5 = np.polyval(f5, xx)
plt.plot(x, y, 'o', label='data')
plt.plot(xx, y2, label='2nd degree')
plt.plot(xx, y3, label='3rd degree')
plt.plot(xx, y4, label='4th degree')
plt.plot(xx, y5, label='5th degree')
plt.legend()
plt.show()
```
运行结果如下图所示:
![多项式拟合曲线](https://cdn.luogu.com.cn/upload/image_hosting/ed9wy6h7.png)
阅读全文