Está en la página 1de 4

Diego Alejandro Montes Rolon

Christian Esteban Fuentes Quintero

# PARTE 1

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# DOCUMENTACIÓN
'''
Autor: Diego Alejandro Montes Rolon
Christian Esteban Fuentes Quintero
-
funcion_lineal()
-
* Calcula la imagen para cada elemento de un arreglo de Numpy mediante la expre
sión
y = mx + b.
* Parametro:
- m (int) ---> representa la pendiente de la recta
- b (int) ---> representa la interseccion en el eje y de la recta
- x (numpy.ndarray) ---> representa el intervalo de graficacion
-
* Retorna
- y (numpy.ndarray) ---
> Reperesenta la imagen de evaluar cada elemento del
arreglo de numpy x mediante la expresion y = mx + b.
-
'''

def funcion_lineal(x, b, m):


y = m*x + b
return y

# DOCUMENTACIÓN
'''
Autor: Diego Alejandro Montes Rolon
Christian Esteban Fuentes Quintero

-
regresion_lineal()
-
* Calcula los valores para calcular la pendiente y el punto de intersección par
a
graficar la regrecion con un proceso predefinido, que este procesova a depender
de la función estipulada anteriormente que en este caso es la lineal
* Parametro:
- m (int) ---> representa la pendiente de la recta
- b (int) ---> representa la interseccion en el eje y de la recta
- circuitos (numpy.ndarray) ---> representa los datos para el intervalo
de graficación
-
* Retorna
- y (numpy.ndarray) ---> Reperesenta la imagen de evaluar cada elemento del
arreglo de numpy x mediante la expresion y = mx + b.
-
'''
def regresion_lineal():
circuitos = pd.read_excel('/content/drive/MyDrive/Programación II/Libro1.xlsx
')
sumax = circuitos['Voltaje'].sum()
sumay = circuitos['Med'].sum()
n = circuitos['Med'].count()
sumaxy = ((circuitos['Voltaje']*circuitos['Med']).sum())*n
sumax2 = sumax**2
sumax2n = (((circuitos['Voltaje'])**2).sum())*n
sumax_y = sumax*sumay
mediax = circuitos['Voltaje'].mean()
mediay = circuitos['Med'].mean()
m = (sumax_y-sumaxy)/(sumax2-sumax2n)
b = mediay - m*mediax

return m, b, circuitos

# DOCUMENTACIÓN
'''
Autor: Diego Alejandro Montes Rolon
Christian Esteban Fuentes Quintero

-
grafica_lineal()
-
* Grafica la expresion y = mx + b y los puntos de x en forma de regreción, en u
na
ventana particular mediante dos arreglos de typo Numpy x, y
definidos por los arreglos de circuitos ejex y ejey respectivamente
* Parametro:
- pendiente (int) ---> representa la pendiente de la recta
- puntoc (int) ---> representa la interseccion en el eje de la recta
- circuitos (numpy.ndarray) ---> representa los datos para el intervalo
de graficación
-
* Retorna
- ventana (matplotlib.pyplot.plot) ---
> Representa la grafica de la expesión
y = mx + b con los valores del archivo de excel mediante el intervalo maxim
o
y minimo de x.
-
'''

def grafica_lineal():
m,b,circuitos = regresion_lineal()
circuitos.plot(x='Voltaje', y='Med', kind='scatter', title = 'Circuito',color
= 'darkred')
ejex = np.linspace(circuitos['Voltaje'].min(), circuitos['Voltaje'].max(), 10
)
ejey = funcion_lineal(ejex, b, m)
plt.plot(ejex, ejey, color = 'orange')
pendiente = ((circuitos['Voltaje'].max()) - (circuitos['Voltaje'].min()))/((c
ircuitos['Med'].max()) - (circuitos['Med'].min()))
puntoc = (circuitos['Med'].max())-pendiente*(circuitos['Voltaje'].max())

return pendiente, puntoc


# CASOS DE PRUEBA
grafica_lineal()

# PARTE 2

import pandas as pd

circuitos = pd.read_excel('/content/drive/MyDrive/Programación II/Libro1.xlsx')

circuitos['I Teorica'] = circuitos['Voltaje']/3750


circuitos['Error'] = np.absolute((((circuitos['I Teorica'])-
(circuitos['Med']))/circuitos['I Teorica'])*100)
circuitos

También podría gustarte