2013-09-24 11 views
5

Mam dwie listy danych, jedną z wartościami x, a drugą z odpowiednimi wartościami y. Jak mogę znaleźć najlepsze dopasowanie? Próbowałem zmylić z scipy.optimize.leastsq, ale po prostu nie mogę tego naprawić.Metoda najmniejszych kwadratów w pytonie

Każda pomoc jest mile widziana

+2

Jeśli jesteś po prostu robi [Liniowy] (http://en.wikipedia.org/wiki/Linear_least_squares_ (matematyka)) pasuje to może być prostsze po prostu zrobić matematykę zamiast szukać biblioteki. Coś w stylu 'scipy.optimize.leastsq' jest o wiele bardziej skomplikowane, niż potrzebujesz. –

Odpowiedz

12

myślę byłoby prostsze w użyciu numpy.polyfit, która wykonuje najmniejszych kwadratów wielomianu dopasowanie. Jest to prosty fragment:

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

To jest dokładnie to, czego potrzebowałem, dziękuję bardzo! –