You are on page 1of 1

from math import *

def RectaMinSq(datos):
X = sum([p[0] for p in datos])
Y = sum([p[1] for p in datos])
XX = sum([(p[0])**2 for p in datos])
XY = sum([p[0]*p[1] for p in datos])
m = len(datos)

def P(x): # recta de mínimos cuadrados


a0 = float(Y*XX-X*XY)/float(m*XX-X**2)
a1 = float(m*XY-X*Y)/float(m*XX-X**2)

print ("N = ",a0)


print ("M =", a1)
return a0+a1*x
return P

def ErrorSq(f, datos): # Error cuadrático


E = sum([(p[1]-f(p[0]))**2 for p in datos])
return E

# datos de prueba
datos = [(-3.4, 1.0), (2.3, -3.1), (1.1, 1.2), (0.4, 0.8),(4.0, 2.0),(0.0, -0.7),(-
3.1, 1.4),(1.0, 1.3)]
f = RectaMinSq(datos)

print ("Evaluar en x=0:")


print (f(0.0))
print (r"Error cuadr\'atico:")
print (ErrorSq(f, datos)) # calcular error cuadr\'atico
print ("\n")

You might also like