import numpy as np
import math
x = np.array([0, 1, 2, 3, 4, 5])
y = np.array([5, 5, 13, 24, 36, 65])
xala2 = x**2
xala3 = x**3
xala4 = x**4
xpory = np.multiply(x, y)
xala2pory = (x**2)*y
sumax = np.sum(x)
sumay = np.sum(y)
suma_xala2 = np.sum(xala2)
suma_xala3 = np.sum(xala3)
suma_xala4 = np.sum(xala4)
suma_xpory = np.sum(xpory)
suma_xala2pory = np.sum(xala2pory)
n = len(x)
print(x)
print(y)
print(xala2)
print(xala3)
print(xala4)
print(xpory)
print(xala2pory)
print('')
print("sumatoria x: ",sumax)
print("sumatoria y: ",sumay)
print("sumatoria x^2: ",suma_xala2)
print("sumatoria x^3: ",suma_xala3)
print("sumatoria x^4: ",suma_xala4)
print("sumatoria x*y: ",suma_xpory)
print("sumatoria x^2*y: ",suma_xala2pory)
print('')
print("ecuacion 1 => ",n,"a0 +",sumax,"a1 +",suma_xala2,"a2 =",sumay)
print("ecuacion 2 => ",sumax,"a0 +",suma_xala2,"a1 +",suma_xala3,"a2 =",suma_xpory)
print("ecuacion 3 => ",suma_xala2,"a0 +",suma_xala3,"a1 +",suma_xala4,"a2 =",suma_xala2pory)
a = np.array([[n,sumax,suma_xala2],[sumax,suma_xala2,suma_xala3],[suma_xala2,suma_xala3,suma_xala4]])
b = np.array([sumay,suma_xpory,suma_xala2pory])
z = np.linalg.solve(a,b)
print('')
print("el sistema de ecuaciones lineales resuelto: ")
print(z)
print('')
print("ingrese los valores de a0, a1 y a2: ")
a0 = float(input("valor de a0 = "))
a1 = float(input("valor de a1 = "))
a2 = float(input("valor de a2 = "))
print('')
print("ecuacion: ")
print("y = ",a0,"+",a1,"x +",a2,"x^2")
promediox = np.mean(x)
promedioy = np.mean(y)
st = (y-promedioy)**2
suma_st = np.sum(st)
sr = (y-a0-(a1*x)-(a2*(x**2)))**2
suma_sr = np.sum(sr)
sy = math.sqrt((suma_st/(n-1)))
sydivx = math.sqrt((suma_sr/(n-2)))
print('')
print("promedio de x = ",promediox)
print("promedio de y = ",promedioy)
print('')
print("st:")
print(st)
print("sr:")
print(sr)
print('')
print("sumatoria st = ",suma_st)
print("sumatoria sr = ",suma_sr)
print('')
print("sy = ",sy)
print("sy/x = ",sydivx)
if (sydivx < sy):
print("el modelo es adecuado")
r = math.sqrt(((suma_st-suma_sr)/suma_st))
rfinal = r*100
print('coeficiente de correlacion(r) = ',rfinal)
else:
print('El modelo no es adecuado')