擅长:python、mysql、java
<p>Keith提供的链接或Riaz提供的答案可能有助于获得poly-fit,但如果有的话,总是建议使用库,对于手头的问题,<a href="http://docs.scipy.org/doc/numpy-1.3.x/contents.html" rel="noreferrer">numpy</a>提供了一个极好的多项式拟合函数,名为<a href="http://docs.scipy.org/doc/numpy-1.3.x/reference/generated/numpy.polyfit.html" rel="noreferrer">polyfit</a>。可以使用polyfit将数据拟合到任意程度的方程上。</p>
<p>下面是一个使用numpy将数据拟合为y=ax+b形式的线性方程的示例</p>
<pre><code>>>> data = [12, 34, 29, 38, 34, 51, 29, 34, 47, 34, 55, 94, 68, 81]
>>> x = np.arange(0,len(data))
>>> y=np.array(data)
>>> z = np.polyfit(x,y,1)
>>> print "{0}x + {1}".format(*z)
4.32527472527x + 17.6
>>>
</code></pre>
<p>类似地,二次拟合将是</p>
<pre><code>>>> print "{0}x^2 + {1}x + {2}".format(*z)
0.311126373626x^2 + 0.280631868132x + 25.6892857143
>>>
</code></pre>