Minimos cuadrados

derivadas_parciales_direccionales_2016_12
import numpy as np
import matplotlib.pyplot as plt

N=4
x=np.zeros(N)
y=np.zeros(N)
x[0]=1
x[1]=2
x[2]=3
x[3]=4
y[0]=1.4
y[1]=1.1
y[2]=0.7
y[3]=0.1

plt.grid()
plt.plot(x,y,'o')
plt.show()

Ahora, deseamos calcular

aux1=0
aux2=0
for i in range(0,N):
    aux1=aux1+x[i]
    aux2=aux2+y[i]
aux1=aux1/N
aux2=aux2/N
print(aux1)
print(aux2)

Ahora para calcular

num=0
den=0
for i in range(0,N):
    num= num  + (x[i]*(y[i]-y_avg))
    den=den   + (x[i]*(x[i]-x_avg))
m=num/den

Ahora

b=y_avg-m*x_avg
f = np.polynomial.polynomial.polyfit(x, y, 1)

np.polynomial.polynomial.polyval(1, f)