问题描述
我建议您从简单的多项式拟合开始,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()
解决方法
我有一些要点,我正在努力为这些要点拟合曲线。我知道有scipy.optimize.curve_fit
功能,但是我不了解文档,即如何使用此功能。
我的观点: np.array([(1,1),(2,4),(3,(9,3)])
有人可以解释该怎么做吗?