2013-09-24 18 views
5

Ho due elenchi di dati, uno con valori x e l'altro con valori y corrispondenti. Come posso trovare la soluzione migliore? Ho provato a fare scherzi con scipy.optimize.leastsq ma non riesco a farlo bene.Metodo quadrato minimo in python

Qualsiasi aiuto è molto apprezzato

+2

Se stai solo facendo un [lineare] (http://en.wikipedia.org/wiki/Linear_least_squares_ (matematica)) fit potrebbe essere più semplice solo per fare la matematica da soli, piuttosto che cercare una biblioteca. Qualcosa come "scipy.optimize.leastsq" è molto più complicato del necessario. –

risposta

12

penso che sarebbe più semplice da usare numpy.polyfit, che svolge minimi quadrati polinomiale. Questo è un semplice frammento:

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

Questo è esattamente ciò di cui avevo bisogno, grazie mille! –