scipy.optimize.fsolve:
X = np.array([1, 2, 3])
Y = np.array([2, 4, 6])
s = 2
def f(i):
"""Fixed slope 1-deg polynomial residuals"""
return ((Y - (s*X + i))**2).sum()
, polyfit:
In [37]: np.polyfit(X, Y, 1)
Out[37]: array([ 2.00000000e+00, 2.30755522e-15])
In [38]: fsolve(f, x0=1)
Out[38]: array([ 1.63883763e-16])
:
In [39]: s = 4
In [40]: fsolve(f, x0=1)
Out[40]: array([-3.99075568])