2013-09-24 150 views
5

Tôi có hai danh sách dữ liệu, một danh sách có giá trị x và giá trị kia có giá trị y tương ứng. Làm thế nào tôi có thể tìm được sự phù hợp nhất? Tôi đã cố gắng rối tung với scipy.optimize.leastsq nhưng tôi dường như không thể làm cho nó đúng.Phương pháp vuông tối thiểu trong python

Any help is appreciated rất

+2

Nếu bạn chỉ cần làm một [linear] (http://en.wikipedia.org/wiki/Linear_least_squares_ (toán học)) phù hợp với nó có thể đơn giản hơn chỉ để tự làm toán thay vì tìm kiếm một thư viện. Một cái gì đó như 'scipy.optimize.leastsq' phức tạp hơn bạn cần. –

Trả lời

12

Tôi nghĩ rằng nó sẽ đơn giản hơn để sử dụng numpy.polyfit, thực hiện bình phương tối thiểu phù hợp với đa thức. Đây là một đoạn mã đơn giản:

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

Đây chính xác là những gì tôi cần, cảm ơn bạn rất nhiều! –