2013-09-24 29 views
5

我有两个数据列表,一个是x值,另一个是相应的y值。我如何找到最合适的?我试过用scipy.optimize.leastsq搞乱,但我似乎无法做到。python中的最小二乘法

任何帮助是极大的赞赏

+2

如果你只是做了[线性](http://en.wikipedia.org/wiki/Linear_least_squares_(数学)),以符合它可能是更简单只是为了自己做数学而不是去找图书馆。像“scipy.optimize.leastsq”这样的东西比你需要的复杂得多。 –

回答

12

我认为这将是简单的使用numpy.polyfit,执行最小二乘多项式拟合。这是一个简单的片断:

import numpy as np 

x = np.array([0,1,2,3,4,5]) 
y = np.array([2.1, 2.9, 4.15, 4.98, 5.5, 6]) 

z = np.polyfit(x, y, 1) 
p = np.poly1d(z) 

#plotting 
import matplotlib.pyplot as plt 
xp = np.linspace(-1, 6, 100) 
plt.plot(x, y, '.', xp, p(xp)) 
plt.show() 

enter image description here

+0

这正是我所需要的,非常感谢! –