Como Crear Un Programa En Python Que Encuentre El Area Bajo La Curva De Un Diagrama PV

by nicocastrof in Circuits > Art

883 Views, 3 Favorites, 0 Comments

Como Crear Un Programa En Python Que Encuentre El Area Bajo La Curva De Un Diagrama PV

isoterma.png

En este tutorial se enesñara a calcular el area bajo una curva con datos importados desde un archivo. Para ello se calcula el area usando muchos trapecios sumados y se coloreará el area bajo esta.

Paso 1: Importe Las Bibliotecas De Python

Captura de pantalla (11).png

El primer paso para crear nuestro programa es importar las bibliotecas de Python matplotlib que nos sirve para plotear graficas y numpy que en este caso utilizaremos para importar el texto del archivo. La imagen muestra los comandos para importar las librerias.

Paso 2: Importar Un Archivo Con Los Datos

Para este paso se importa el archivo que contiene los datos. En mi caso tiene 252 datos asi que iniciamos en 0 (Python considerada el 0 el primer dato) y acabamos en 252 de esta manera:

data=np.loadtxt("Datos proceso T.txt",float)
x=data[0:251,0] y=data[0:251,1]

Paso 3: Calcular El Area

En este paso haremos que el programa reparta el areabajo la curva en varios trapecios y los sume entre ellos. Como sabemos el area de un trapecio es la altura por el promedio de sus bases. Esta es la forma de lograrlo:

atotal=0.
for i in range (0,250):

x1=x[i]

y1=y[i]

x2=x[i+1]

y2=y[i+1]

area=(x2-x1)*(y2+y1)/2

atotal=atotal+area

print atotal

Paso 4: Plotear La Curva Y Rellenarla

Ahora finalmente plotee la grafica de la curva y rellenela utilizando las funciones de matplotlib. Estas deben plotear el eje y y el eje x. k- Se utiliza para que la grafica sea ploteada en una linea negra. Fill between coloreaa el area bajo la grafica y show muestra lo que se ploteo. Estos son los comandos:

plt.xlabel("Pr(Pa)")
plt.ylabel("Vol(L)")

plt.plot(x,y, "k-") plt.fill_between(x,y) plt.show()

Nuestro Programa Al Final Se Debe Ver Como La Foto Y Mostrar Lo Que Se Muestra En La Segunda Foto.

Captura de pantalla (40).png
Captura de pantalla (9).png