A least-squares procedure

x = linspace(0.0, 1.0, n)               # coordinates
y_line = -2*x + 3
y = y_line + random.normal(0, 0.25, n)  # line with noise

# goal: fit a line to the data points x, y

# create and solve least squares system:
A = array([x, ones(n)])
A = A.transpose()

result = linalg.lstsq(A, y)
# result is a 4-tuple, the solution (a,b) is the 1st entry:
a, b = result[0]

plot(x, y, 'o',        # data points w/noise
     x, y_line, 'r',   # original line
     x, a*x + b, 'b')  # fitted lines
legend('data points', 'original line', 'fitted line')
hardcopy('myplot.png')

previousnexttable of contents