Ajuste con libreria

Ajuste de rectas

import numpy as np
import matplotlib.pyplot as plt
from random import*

N=5
x=np.zeros(N)
y=np.zeros(N)
for i in range(0,N):
    x[i]=i
    y[i]=i+(-1+2*random())

plt.grid()
plt.plot(x,y,'o')
f = np.polynomial.polynomial.polyfit(x, y, 1)
ym=np.zeros(N)
for i in range(0,N):
    ym[i]=np.polynomial.polynomial.polyval(i, f)
plt.grid()
plt.plot(x,y,'o')
plt.plot(x,ym,'-r')

Ajustes de polinomios de segundo orden

import numpy as np
import matplotlib.pyplot as plt
from random import*

N=10
x=np.zeros(N)
y=np.zeros(N)
for i in range(0,N):
    x[i]=i
    y[i]=i*i+(-(i)+2*(i)*random())

plt.grid()
plt.plot(x,y,'o')
f2 = np.polynomial.polynomial.polyfit(x, y, 2)
y2=np.zeros(N)
for i in range(0,N):
    y2[i]=np.polynomial.polynomial.polyval(i, f2)
plt.grid()
plt.plot(x,y,'o')
plt.plot(x,y2,'-r')