import numpy as np
import matplotlib.pyplot as plt
num = 1000
x = np.linspace(0, 10, num)
y = np.exp(x)
# Add some non-stationary noise that's hard to see without de-trending
noise = 100 * np.exp(0.2 * x) * np.random.normal(0, 1, num)
y += noise
fig, ax = plt.subplots()
ax.plot(x, y, 'ro')
plt.show()
简单地说,您获取
polyfit
返回的系数,并将它们传递给polyval
,以计算观察到的“x”位置处的多项式。在作为一个独立的示例,假设我们有类似于以下内容的内容:
注意,这里我没有使用多项式函数来创建
y
。那是故意的。否则,我们将得到精确的拟合,而不需要“玩弄”多项式的阶数。在现在让我们用一个二阶多项式函数(注意
^{pr2}$model = np.polyfit(x, y, 2)
行中的2):请注意,我们没有完全拟合数据。这是一个指数函数,我们用的是多项式。然而,当我们增加多项式的阶数时,我们将更精确地拟合函数(冒着开始拟合噪声的风险):
相关问题 更多 >
编程相关推荐