python实现一维离散数据的20阶多项式拟合
时间: 2024-02-19 14:00:01 浏览: 80
一维离散数据的正交多项式最小二乘拟合_最小二乘拟合_正交多项式_一维离散数据的正交多项式最小二乘拟合_
5星 · 资源好评率100%
可以使用numpy库中的polyfit函数来进行一维离散数据的多项式拟合。下面是一个实现20阶多项式拟合的例子:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成一维离散数据
x = np.linspace(-10, 10, num=101)
y = 1 / (1 + np.exp(-x)) + np.random.normal(scale=0.05, size=x.shape)
# 进行20阶多项式拟合
coeffs = np.polyfit(x, y, deg=20)
# 生成拟合曲线上的点
xfit = np.linspace(-10, 10, num=1001)
yfit = np.polyval(coeffs, xfit)
# 绘制原始数据和拟合曲线
plt.plot(x, y, '.', label='data')
plt.plot(xfit, yfit, '-', label='fit')
plt.legend()
plt.show()
```
输出的图像中蓝色的点表示原始数据,红色的线表示拟合曲线。
![polyfit](https://img-blog.csdnimg.cn/20211015172934335.png)
其中,`np.polyfit()`函数的第三个参数`deg`表示多项式的阶数,这里设置为20。需要注意的是,多项式阶数过高会导致过拟合的问题,因此在实际应用中需要根据实际情况选择合适的阶数。
阅读全文