2014-09-29 66 views
-3

我想知道如何執行線性近似並從python數據中獲取線性方程。如何執行線性近似並從python數據中獲得線性方程

即它會是這樣的

linapprox((0,0),(1,1),(2,1.9),(3,3.1)) 
> y = x 
+1

http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.lstsq.html – CoryKramer 2014-09-29 22:15:55

+2

['numpy.linalg.lstsq'](http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.lstsq.html)可能會幫助你。 – isedev 2014-09-29 22:16:41

回答

5

polyfit將工作

x=np.arange(0,4) 
y=np.array([0,1,1.9,3.1]) 
np.polyfit(x,y,1) 

給出

array([ 1.02, -0.03]) 

的兩個值是m和c,其中y = MX + C

您可以論劍:

np.round(np.polyfit(x,y,1)) 

給你想要的東西:

array([ 1., 0.]) 
+1

有趣..你爲什麼使用'polyfit' vs'linalg.lstsq'? – tom10 2014-09-30 20:44:31

+1

習慣的力量......當我遇到類似問題時,我首先發現了這種習慣。會對意見最感興趣。 – atomh33ls 2014-09-30 21:00:10

+2

不出所料,polyfit在最後使用lstsq(1377行)... https://github.com/numpy/numpy/blob/v1.8.1/numpy/polynomial/polynomial.py#L1195 – tom10 2014-10-01 00:47:09