Home Assistant Fácil

Curso de Home Assistant y domótica

  • Blog
  • Soy un pardillo
  • Podcast
  • Curso Arduino
  • Curso Domótica
  • Acceder
Usted está aquí: Inicio / Blog / Programación / Matemáticas en la programación

Matemáticas en la programación

Luis del Valle Hernández

matematicas

Cuando quieres aprender a programar es una cuestión de tiempo y dedicación. Uno de los pilares fundamentales es la lógica computacional, en este artículo no hablaré de esta parte. Otro pilar sería aplicar las matemáticas en la programación y en este artículo veremos un ejemplo de cómo utilizar esta ciencia a la hora de programar.

Estamos acostumbrados a utilizar operaciones matemáticas en muchas ocasiones a lo largo de un día, operaciones básicas como la suma, resta, división y multiplicación. Cuando estamos programando esto es básico, suma el importe al total de la compra, resta el descuento que debemos aplicar, divide entre doce para calcular la cuota mensual o aplicar el IVA correspondiente a tu compra. Pero hay otras operaciones matemáticas, algo más complejas, que en un momento podríamos utilizar y hablo desde mi experiencia, ya que yo en mi trabajo diario las suelo utilizar. Hoy os voy a hablar de las derivadas.

Si has estudiado bachiller habrás hecho cientos de derivadas, pero seguramente no habrás asimilado el concepto simplemente porque no has encontrado una aplicación práctica. Las derivadas se aplican en multitud de campos y te voy a demostrar como podemos utilizarla para que en un futuro tu seas capaz de extrapolar este conocimiento a cualquier otro campo. Antes de nada demos la definición matemática, esa definición que todos hemos oído alguna vez y que seguramente hayas memorizado para plasmarla en algún examen.

La derivada de una función f(x) en un punto a se define como la pendiente de la recta tangente a la función en dicho punto.

La verdad es que suena un poco mal, cuando escuchamos esta definición no te imaginas donde puedes aplicar las derivadas. Hoy vamos a ver un pequeño ejemplo donde utilizo este concepto, más concreto el gradiente de una función, relacionado con las derivadas direccionales. El gradiente nos indica la dirección en la cual una función varía más rápidamente.

Después de esta pequeña introducción matemática voy a plantear el problema. Tenemos un robot hecho con Arduino el cual tiene un sensor de luminosidad y queremos encontrar dentro de un cuadrado de 70 cm x 70 cm donde está una bombilla, la luminosidad máxima. Para ello vamos a definir un precisión y un punto de partida. La precisión es de 10 cm y el punto de partida será el centro del cuadrado. Tenemos el eje X (eje horizontal) y el eje Y (eje vertical). En la siguiente imagen puedes ver el esquema.

gradiente-funcion-arduino-01

Cuando hablo de precisión 10 cm quiere decir que vamos a ir dando saltos de 10 en 10 cm. ¿Donde debemos hacer el siguiente movimiento? Para ello utilizamos el gradiente, recordar que nos va a decir la dirección donde una función varia más rápidamente. En nuestro caso estamos buscando maximizar la luminosidad así que, tenemos que dirigirnos al punto más lumínico en el entorno de 10 cm. Para ello tenemos la siguiente función F(x,y) = |L|, donde L es la luminosidad que nos facilitará el sensor de Arduino. Esto nos indica que la luminosidad será función de las coordenadas X e Y. Solo tenemos que calcular el gradiente de F y nos indicará hacia donde nos tendremos que mover. A continuación os pongo el pseudocódigo o el algoritmo que deberíamos aplicar y posteriormente lo desarrollaremos con datos imaginarios.

  1. Colocar robot en el centro X = 40, Y = 40.
  2. Repetir hasta que gradiente (∇) en X y en Y sean 0.
    1. Leer luminosidad posición actual L0.
    2. Mover robot a la posición X + 10 y obtener luminosidad Lx1.
    3. Mover robot a la posición X – 10 y obtener luminosidad Lx2.
    4. Mover robot a la posición Y + 10 y obtener luminosidad Ly1.
    5. Mover robot a la posición Y – 10 y obtener luminosidad Ly2.
    6. Obtenemos el gradiente en X y en Y. ∇X = (Lx1 – Lx2) / 2, ∇Y = (Ly1 – Ly2) / 2. Esto nos da la dirección en que nos debemos mover.
    7. Mover el robot con la precisión dada (10 cm) en la dirección del gradiente.

El algoritmo anterior es una implementación bastante sencilla de como podría trabajar nuestro robot. Tendríamos que tener en cuenta más cosas para dejar un algoritmo totalmente funcional, en eso consiste la programación, pero como simple ejemplo nos vale para una primera aproximación. En el siguiente esquema podemos ver la primera iteración del algoritmo.

gradiente-funcion-arduino-02

Aplicando los datos que obtenemos del esquema anterior tendríamos los siguientes resultados.

  1. Robot colocado posición (40, 40)
  2. Gradientes diferente de cero
    1. L0 = 10
    2. Lx1 = 11
    3. Lx2 = 11
    4. Ly1 = 12
    5. Ly2 = 9
    6. ∇X = (11 – 11) / 2 = 0; ∇Y = (12 – 9) / 2 = 3/2
    7. Mover en dirección (0, 3/2)

Como habéis comprobado la dirección a mover sería en sentido a la bombilla, dirección vertical. Este es un ejemplo de como podemos utilizar las matemáticas en la programación. Solo es el principio, si decides embarcarte en este mundo tan fascinante, descubrirás cosas que nunca te hubieras imaginado que se podían hacer, y aplicarás muchos conocimientos de años de estudio que has estado adquiriendo durante toda tu vida. Realmente no partimos de cero cuando queremos aprender a programar, tenemos una base sólida de conocimientos que hemos ido asimilando a lo largo de muchos años. Te animo a que busques un ejemplo donde puedas aplicar estos conocimientos y si lo encuentras, envíanoslo a través del formulario de contacto, estaremos encantados de discutirlo contigo.

broadlink home assistant

Broadlink Home Assistant con HAIR: mandos por infrarrojos sin YAML

Llegas a casa con el emisor Broadlink Home Assistant nuevecito. Lo sacas de la caja con toda la ilusión del mundo para integrar el ventilador del … [+ info...]

NUKI SMART LOCK

Nuki Smart Lock Go, Pro o Ultra: cuál comprar y la prueba que lo decide todo

Mira chapapote, imagina la cara de tonto que se te queda cuando te gastas casi 350 pavos en una cerradura inteligente Nuki, llega a casa, la abres con … [+ info...]

slzb-06

SLZB-06U: migrar coordinador Zigbee desde Sonoff Dongle P (y por qué el Dongle E es diferente)

Vale, lo confieso: no hay nada que me dé más pereza en domótica que tener que migrar toda la red Zigbee. El típico momento en el que tu viejo … [+ info...]

Copyright © 2026 · Programar Fácil · Aviso legal

Utilizamos cookies para ofrecerte la mejor experiencia en nuestra web.

Puedes aprender más sobre qué cookies utilizamos o desactivarlas en los .

Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Cookies de terceros

Esta web utiliza Google Tag Manager para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

Dejar esta cookie activa nos permite mejorar nuestra web.