Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sindy Yuryma Espinosa Castro, Juan Diego Espinosa Santos, Alfonso Giovanny Torres Torres
Notas de Autor
Sindy Yuryma Espinosa Castro (1721023471), Juan Diego Espinosa Santos (1811020652), Alfonso
2020
Tabla de Contenidos
Introducción...............................................................................................................................................3
Justificación...............................................................................................................................................4
Objetivos....................................................................................................................................................5
Objetivo general.........................................................................................................................................5
Objetivos específicos.................................................................................................................................5
Desarrollo de la actividad...........................................................................................................................7
Herramientas a usar....................................................................................................................................7
Conclusión...............................................................................................................................................26
Referencias Bibliográficas.......................................................................................................................27
Introducción
El desarrollo del presente proyecto analizará los Métodos Numéricos. Esta rama de las Matemáticas
nos permite diseñar algoritmos para la soución de problemas de análisis matemático. Estos conceptos
son importantes en la programación de software, ya que el análsis numérico proporcina las bases
necesarias para llevar a cabo todos aquellos procedimientos matemáticos que se puedan expresar a
manera de algoritmos basándose en aquellos que permitan su simulación o cálculo en procesos más
Estos métodos pueden ser aplicados para obtener un valor numérico como la solución a un problema
El presente trabajo escrito se realiza con el propósito de observar cómo pueden ser usadas las
ecuaciones para obtener la medición de datos capturados; donde los conocimientos adquiridos son
Objetivo general
Medir la exposición radiante durante el periodo de tiempo indicado haciendo uso de los datos
Objetivos específicos
integración.
módulo.
Propósito del proyecto
En la estación de monitoreo ambiental (EMA) se cuenta con un piranómetro que mide la radiación solar
Ee (t) (en W/m2) incidente sobre la superficie del Campus Principal. A continuación se encuentra el
Muchas veces es necesario calcular la exposición radiante H e (en J/m 2 ) durante un determinado
tf
H e =∫ Ee ( τ ) dτ
ti
donde t i es un tiempo inicial y t f es un tiempo final. El propósito del proyecto es medir entonces
H e para un determinado dıı́a delaño en curso, usando los datos entregados por EMA y técnicas del
Herramientas a usar
• Paquete python3-paho-mqtt: Librería para uso del protocolo MQTT, que es un protocolo de
SQLite se enlaza con el programa pasando a ser parte integral del mismo.
Una vez instalado, se ejecuta el script ema_get_radi.py. En la fuente del código observamos cómo
funciona:
Crea una base de datos (archivo .db) de nombre miniema.db. Luego se conecta a la base datos y
ejecuta el comando de creación de la tabla datos (si ésta no existe). Dicha tabla tiene los campos
numero (llave primaria autoincrementable de la tabla), tiempo (fecha y hora actual de la captura
en formato UTC) y radi (valor obtenido del servicio EMA que representa la radiación solar
medida en W/m2).
Luego vemos que se definen los datos de conexión al servicio EMA: la URL, el parámetro del
tópico (en este caso se desea obtener el dato de la radiación solar) y el puerto de conexión. Se
se ejecutará al momento de obtener respuesta por parte del servicio. Este último método lo que
hara es insertar el dato de la radición solar obtenido (un número) e insertarlo en la tabla datos de
Al ejecutar el script, se imprimirá también en la consola el dato de la radiación solar obtenido de EMA,
base dedatos miniema. db en una estructura que son numero, tiempo y radi.
Con lo anterior se realizó la captura del día sábado 28 de marzo de 2020. Para obtener las lecturas de
radiación solar, el script se dejó ejecutando entre las 05:56 y las 18:06, horas del amanecer y atardecer
del día.
Se realizaron en total 730 lecturas, una por cada minuto de ejecución del script. A través de SQLite
Para esta parte de la actividad de hará uso de los trazadores cúbicos. La idea básica de este método es
que, con los puntos que ya se tienen, obtener las funciones para cada rango de puntos; es decir, el
El trazador cúbico S ( x ) es una función a trozos que interpola a la f en los n+1 puntos.
2 3
Su ecuación es la siguiente: S i=ai+ bi ( x − x i ) +c i ( x − xi ) + di ( x − xi )
x 0 1 2 3 4 5
y -0.2 1,71 1,71 0,09 0,83 3,03
y=a a0 a1 a2 a3 a4 a5
P ( x ) , x ∈ [ 0,1 ]
P ( x ) , x ∈ [ 1,2 ]
P ( x ) , x ∈ [ 2,3 ]
P ( x ) , x ∈ [ 3, 4 ]
Paso 2: Calcular coeficientes c i
hi=( x i − x i −1 )
3 3
hi −1 c i −1 +2 ( hi −1 +hi ) c i +hi c i+1= ( ai+1 −a i ) − (a − a )
hi h i− 1 i i −1
c 0=0.0
c 1=−1.0719617224880382
c 2=− 1.4421531100478466
c 3=1.9805741626794258
c 4=0.5998564593301435
1 h
bi= ( ai +1 − ai ) − i ( 2 c i+c i+1 )
hi 3
b0=2.2673205741626794
b1 =1.195358851674641
b2=−1.3187559808612441
b3=− 0.780334928229665
b4 =1.800095693779904
c i+1 −c i
d i=
3 hi
d 0=− 0.3573205741626794
d 1=− 0.1233971291866028
d 2=1.1409090909090909
d 3=− 0.4602392344497607
d 4 =−0.19995215311004785
Paso 5: Construir S ( x )
Con las anteriores funciones a trozos se podría empezar a trazar la función en el plano:
Para obtener los trazadores de las capturas realizadas se hizo uso del script tcubicos.py de la siguiente
manera:
• La función cubicSplines obtiene los coeficientes a, b, c y d de la lista de puntos (x, y) que se
columna radi. Por cada uno de los resultados se crea una lista de puntos.
• Se recorre la lista de puntos y con las listas de coeficientes anteriormente obtenidas se arman las
ecuaciones.
Al ejecutar el script para los 730 puntos de captura se obtiene el siguiente resultado:
• Se obtiene una lista de los puntos, siendo x la posición de la captura y y el valor de la radiación
Con el anterior script se obtiene Ee (t ) para los 730 puntos de captura. Dichas funciones a trozos y
gráfica:
Fase III: Integración del interpolador
Una vez se obtiene la función del trazador cúbico para cada uno de los puntos de la captura estas se
x 1 2 3 4
y 1 2 3 4
a=[ 1, 2,3 ]
b= [ 1, 1,1 ]
c=[ 0, 0,0 ]
d= [ 0, 0, 0 ]
S ( x ) [ 1≤ x ≤2 ]=1+ ( 1 ( x −1 ) ) + ( 0 ( x −1 )2 ) + ( 0 ( x −1 )3 )
S ( x ) [ 2 ≤ x ≤ 3 ] =2+ ( 1 ( x − 2 ) ) + ( 0 ( x −2 ) ) + ( 0 ( x −2 ) )
2 3
S ( x ) [ 3 ≤ x ≤ 4 ] =3+ ( 1 ( x −3 ) ) + ( 0 ( x −3 ) ) + ( 0 ( x − 3 ) )
2 3
Con estas funciones se obtiene la siguiente gráfica:
El objetivo ahora es hallar el área que se obtiene bajo la curva (área azul de la gráfica). Para este
objetivo se debe, en cada una de estas funciones, obtener la integral de la siguiente manera:
∫ 1+ ( 1 ( x −1 ) ) +( 0 ( x −1 )2 )+ ( 0 ( x −1 )3 ) dx=1,5
1
3
∫ 2+ ( 1 ( x −2 ) ) +( 0 ( x −2 )2 )+ ( 0 ( x −2 )3 ) dx =2,5
2
4
∫ 3+( 1 ( x − 3 ) ) +( 0 ( x −3 )2 )+ ( 0 ( x −3 )3 ) dx=3,5
3
1,5+2,5+3,5=7,5
Para obtener el área de todos los puntos de las capturas se define la siguiente función Python para
La función integrarInterpolador() recibe como parámetro una lista de tuplas las cuales son los
valores capturados de la radiación en la base de datos SQLite (los valores son la posición del dato para
dicha integral la suma acumulativamente para finalmente obtener el valor de la integración de todos los
intervalos.
Ejemplos:
Al ejecutar dicha función junto sobre el conjunto de puntos obtenidos de la captura EMA se obtiene la
siguiente salida:
H e ≈195.268,1969
Durante la realización del proyecto se nos permitió aplicar los conocimientos adquiridos durante el
así como también el aprendizaje y uso de lenguajes y herramientas de programación como lo son en
este caso Python, SQLite y el protocolo MQTT. Lo utilizado en este trabajo puede ser aplicando en
https://es.wikipedia.org/wiki/An%C3%A1lisis_num%C3%A9rico
• paho-mqtt 1.5.0: Project description (30 de octubre de 2019) Obtenido de PyPI: The Python