小编典典

python numpy / scipy曲线拟合

python

我有一些要点,我正在努力为这些要点拟合曲线。我知道有scipy.optimize.curve_fit功能,但是我不了解文档,即如何使用此功能。

我的观点: np.array([(1, 1), (2, 4), (3, 1), (9, 3)])

有人可以解释该怎么做吗?


阅读 212

收藏
2021-01-20

共1个答案

小编典典

我建议您从简单的多项式拟合开始,scipy.optimize.curve_fit尝试将f必须知道的函数拟合到一组点上。

这是使用numpy.polyfit和的简单3度多项式拟合poly1d,第一个执行最小二乘多项式拟合,第二个计算新点:

import numpy as np
import matplotlib.pyplot as plt

points = np.array([(1, 1), (2, 4), (3, 1), (9, 3)])
# get x and y vectors
x = points[:,0]
y = points[:,1]

# calculate polynomial
z = np.polyfit(x, y, 3)
f = np.poly1d(z)

# calculate new x's and y's
x_new = np.linspace(x[0], x[-1], 50)
y_new = f(x_new)

plt.plot(x,y,'o', x_new, y_new)
plt.xlim([x[0]-1, x[-1] + 1 ])
plt.show()

在此处输入图片说明

2021-01-20