Trigonometría en Python

Objetivo: presentar las funciones trigonométricas disponibles en el módulo math de Python.

La mejor manera de acercarse e ir conociendo la inmensa biblioteca estándar de Python es dividiéndola en pequeños bloques temáticos. En el artículo de hoy nos ocuparemos de un subconjunto muy específico: las funciones trigonométricas.

La primera aproximación a las matemáticas en Python es a través del módulo math, incluido directamente en la propia distribución. Más adelante hablaremos de extensiones de terceros como NumPy o SciPy que harán la delicia de matemáticos, físicos e ingenieros. No en vano, Python es cada vez más utilizado por la comunidad científica, que encuentra unidas toda la potencia del lenguaje junto a funcionalidad y herramientas que tradicionalmente sólo han estado disponibles adquiriendo costosos programas como Mathematica o Matlab.

Para disfrutar de todo lo que math nos ofrece debemos importarlo:

>>> import math

En el próximo artículo veremos otros estilos de importación, cada uno con sus ventajas e inconvenientes. Pero con esa simple instrucción tienes acceso ya a todo el espacio de nombres del módulo math, repleto de decenas de funciones entre las que se encuentran las que hoy trataremos.

Básicamente, necesitaremos poder calcular el seno, coseno y la tangente de un ángulo, así como sus funciones inversas (dada alguna de estas magnitudes, conocer a qué angulo se corresponden). Además, nos gustaría poder trabajar tanto en radianes como en grados, de modo que nos sería útil también poder disponer de las funciones de conversión adecuadas.

El seno, coseno y tangente de un ángulo los obtenemos con las funciones sin(), cos() y tan(), respectivamente:

>>> sin(0)
0.0
>>> cos(0)
1.0

Debes tener en cuenta que estas funciones esperan que el argumento se facilite en radianes, y no en grados. A tal efecto, te gustará saber que dispones de la siguiente constante:

>>> math.pi
3.141592653589793

de modo que podemos usar esa expresión en lugar del valor númérico:

>>> math.sin(math.pi/3)
0.8660254037844386
>>> math.cos(math.pi/3)
0.5000000000000001

No existe una función directa para la cosecante, secante y cotangente, pues no es necesario, ya que simplemente se trata de los recíprocos del seno, coseno y tangente, respectivamente.

Las funciones inversas, arcoseno, arcocoseno y arcotangente, se obtienen, respectivamente, con asin(), acos() y atan():

>>> math.atan(1)
0.7853981633974483

Del mismo modo que antes, el ángulo devuelto es en radianes también. Si queremos trabajar en grados deberemos efectuar la conversión con degrees(), que toma como argumento un ángulo en radianes y lo devuelve en grados:

>>> math.degrees(0.7853981633974483)
45.0

La operación contraria, el paso de grados a radianes, se obtiene con radians():

>>> math.radians(90)
1.5707963267948966

que es justamente \pi/2 radianes:

>>> math.pi/2
1.5707963267948966

Otra función útil de math nos permite conocer el valor de la hipotenusa de un triángulo rectángulo dados sus catetos, ahorrándonos tener que calcular la raíz cuadrada de la suma de los cuadrados de estos:

>>> math.hypot(3, 4)
5.0

Para finalizar, vamos a diseñar nuestra propia función seno, que denominaremos sen() (a nuestra usanza) y aceptará directamente ángulos en grados.

import math

def sen(grados):
    return math.sin(math.radians(grados))

Ejecútalo y ya podrás hacer cosas como esta:

>>> sen(30)
0.49999999999999994

En definitiva, ½, tal como nos enseñaron en la escuela…

Javier Montero Gabarró


Trigonometría en Python


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta


Consulta el índice completo de artículos relacionados con Python.

Cálculo de la frecuencia de nuestras notas musicales

Objetivo: entender las matemáticas que hay detrás de un sistema con temperamento igual y aprender a calcular la frecuencia de las notas musicales.

La música y las matemáticas han estado siempre íntimamente ligadas. Conocer la evolución de la concepción musical a lo largo de los siglos, hasta alcanzar el sistema de doce notas con temperamento igual que empleamos en el mundo occidental, es una apasionante aventura, no sólo en sus vertientes musical y matemática, sino también desde las perspectivas cultural, física, técnica y artesanal.

En el artículo de hoy explicaremos qué entiende un matemático por sistema igualmente temperado, conocimiento que nos permitirá calcular con facilidad la frecuencia de cualquier nota de nuestro sistema musical.

A estas alturas del cuento supongo que ya sabrás que nuestro sistema musical tiene doce notas, y no siete. Si no lo tienes claro, echa un vistazo a cualquier imagen de un piano y presta atención a esas teclas negras situadas estratégicamente entre las blancas.

También supongo que sabes que ese patrón de doce notas vuelve a repetirse, encontrando las mismas notas, una octava más agudas a la derecha o más graves a la izquierda. Y que la frecuencia de una nota una octava más aguda que otra es exactamente el doble de esta. Por ejemplo, si tenemos un LA a 440 Hz, el siguiente LA más agudo estará exactamente a una frecuencia de 880 Hz, mientras que el anterior, más grave, se situará en la mitad, 220 Hz.

Esta proporción 2:1 es la única que necesitamos para proseguir con los cálculos que realizaremos a continuación.

He dibujado un piano especial en el que he indicado la frecuencia de unos cuantas notas LA. Es un piano peculiar porque me he permitido poner al mismo nivel las teclas blancas y las negras, de modo que resulte más visual lo que pretendo explicar. He empleado la notación anglosajona a la hora de designar las notas porque me resultaba más cómodo en el gráfico, al ocupar menos espacio.

En vez de ser una visión típica con octavas de DO a DO, he marcado las notas LA como referencia visual, ya que conocemos la frecuencia de una de ellas: la nota LA por encima del DO central tiene una frecuencia exacta de 440 Hz, el sonido de referencia recomendado internacionalmente para la afinación de los instrumentos.

He denominado a esta nota A4 (LA 4), aunque quizás puedas preferir llamarla A3, si eres partidario del sistema franco-belga. Es simplemente una cuestión de elección personal.

Como ya sabemos la relación 2:1 entre octavas, he marcado también las notas A5 y A6, más agudas, y A3, más grave, con sus respectivas frecuencias, inmediatamente calculables multiplicando o dividiendo entre dos.

He colocado también, más pequeñas y en lápiz, el resto de las notas musicales entre A3 y A4. No lo he hecho en las demás octavas para no emborronar demasiado el gráfico.

Imagina que ese dibujo representa un eje de coordenadas en el que se representa la frecuencia de cada nota musical.

¿Es lineal esa representación? Obviamente, no. Si te fijas, la separación entre el A3 y el A4 es de 220 Hz, mientras que entre el A4 y el A5 es del doble, 440 Hz. A su vez, entre A5 y A6 nuevamente el doble, 880 Hz. Sin embargo, sobre el papel, hay la misma distancia entre A3 y A4, que entre A4 y A5 o A5 y A6.

Este tipo de series en las que no hay linealidad, sino proporción constante, se denominan, en matemáticas, progresiones geométricas. Para reducirlas al plano lineal recurrimos a los logaritmos. Gracias a ellos podemos representar linealmente magnitudes que varían exponencialmente. La imagen de las notas uniformemente espaciadas a lo largo de un piano no es más que una visión logarítmica de esta progresión geométrica.

Y lo bueno del asunto, y verdadera clave para comprender lo que es un sistema de temperamento igual, es que la frecuencia de cada una de esas 12 subdivisiones que hay entre medias, correspondientes a cada nota musical, también sigue una representación logarítmica.

Desde el punto de vista matemático, decir que un sistema de doce notas tiene temperamento igual no es otra cosa sino decir que la proporción entre una nota cualquiera y la siguiente (un semitono más alta) es siempre constante.

Hay un factor multiplicativo constante. Si somos capaces de descubrir ese número mágico estaremos en condiciones de poder calcular la frecuencia de cualquier nota.

Calculemos el número que sostiene a nuestro preciado sistema musical. Si A4 es 440 Hz, la siguiente nota, un semitono más alta, LA sostenido (o Si bemol, según prefieras), tendrá por frecuencia:

A su vez, la frecuencia de la nota siguiente, SI, será:

Después de B4 comienza la siguiente octava con C5:

Y así hasta llegar a A5, una octava más alta, doce semitonos, que A4:

Ahora bien, la frecuencia de A5 ya la conocemos, 880 Hz, doble de 440 Hz:

con lo que

Ya tenemos la razón buscada:

Podemos determinar la frecuencia de cualquier nota si conocemos la distancia d en semitonos que la separa de A4:

No es necesario referenciar siempre contra A4; nos sirve cualquier frecuencia conocida, siendo d, en este caso, la distancia en semitonos entre la buscada y la conocida:

Realicemos un ejercicio práctico. Vamos a calcular la frecuencia de MI 5, a una quinta justa por encima de A4. Si contamos, la separación en semitonos entre ambas notas es 7, de modo que:

¿Cuál es la frecuencia del DO central, que se halla nueve semitonos a la izquierda del LA 4? Es un ejemplo en el que d es una distancia negativa.

También podríamos haber resuelto este problema tomando como referencia A3 (220 Hz) y contando tres semitonos hacia delante:

Como vemos, el resultado es el mismo en ambos casos.

Visitaremos en más ocasiones el lado matemático de la música. ¿Sabías que algo que damos por obvio como que Do sostenido tiene la misma frecuencia que Re bemol, es debido a naturaleza igualmente temperada de nuestro sistema musical?

Te dejo pensándolo…

Javier Montero Gabarró


Cálculo de la frecuencia de nuestras notas musicales


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta


Índice completo de artículos sobre armonía.

La magia de los números

A lo largo de los años he ido aprendiendo numerosos “trucos” en los que los números han sido los grandes protagonistas. De todos ellos hay uno en particular, que aprendí cuando era un niño pequeño, que es mi gran favorito. Quiero compartirlo hoy contigo.

Toma una hoja de papel y escribe en ella el número que se forma juntando todas las cifras del uno al nueve, pero saltándote el ocho. Es decir, escribe

12345679

Parece caprichoso saltarse el número ocho, pero gracias a eso surge este fabuloso truco.

Ahora elige una cifra cualquiera entre el uno y el nueve (incluido el ocho, si quieres).

Vamos a hacer algo mágico ahora. Vas a multiplicar el número que apuntaste al principio, 12345679, por otro que te voy a decir, de tal modo que el resultado de la multiplicación sólo contenga la cifra que has elegido.

El número por el que quiero que multipliques 12345679 es nueve veces la cifra elegida.

Por ejemplo, si has optado por un seis, deberás multiplicarlo por 54. Si has elegido el 8, tendrás que multiplicar por 72.

Sé que tu impulso será coger el ordenador o el móvil y realizar la operación (lamentablemente se está perdiendo la capacidad de cálculo por falta de uso), pero el efecto es más asombroso cuando uno se lo pica a mano.

Realiza la operación (con cuidado si has optado por hacerla a mano). ¿No es sorprendente el resultado?

Todo truco, y los matemáticos no iban ser menos, tiene su ciencia. ¿Serías capaz de descubrir la que hay detrás de este?

Javier Montero Gabarró


http://elclubdelautodidacta.es/wp/2012/04/la-magia-de-los-numeros/


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

Probabilidad de que un día en concreto se celebren tres cumpleaños

Hoy es el cumpleaños de tres amigos que tengo en Facebook. Felicidades a Ruth, Victoria y Rafa.

Qué coincidencia, tres cumpleaños en el mismo día… ¿Mucha casualidad? ¿Cuál es la probabilidad de que esto suceda? Sobre un total de 80 amigos, ¿cuál es la probabilidad de que, un día determinado, tres de ellos cumplan años?

Vamos a calcularlo. Partiremos de unos supuestos básicos que harán el cálculo más manejable:

1) Ignoraremos la existencia de años bisiestos, esto es, supondremos años de 365 días.

2) Supondremos que una persona puede nacer con igual probabilidad en cualquier día del año (algo que, interesantemente, no es cierto). Es decir, supondremos sucesos equiprobables.

Se puede resolver de manera inmediata aplicando las fórmulas de la distribución binomial o, dado que es un conjunto suficientemente amplio, de la distribución de Poisson. Pero aquí voy a describir una solución instructiva empleando técnicas de conteo básicas.

Los problemas de combinatoria resultan más sencillos recurriendo a abstracciones visuales. Supongamos mis ochenta amigos de Facebook sentados (por orden alfabético, por ejemplo) en una larga hilera de ochenta puestos. Cada uno dispone de una pizarra en la que va a apuntar su fecha de nacimiento (día y mes). ¿Cuántos arreglos posibles podrían darse?

Un ejemplo de arreglo sería el siguiente:

4 Enero – 24 Diciembre – 2 Abril – 31 Julio – 4 Agosto – 31 Julio – 5 Marzo………..- 3 Septiembre

Es decir, una lista con ochenta fechas, las cuales podrían repetirse cualquier número de veces.

Estamos colocando 365 fechas posibles en 80 sitios. Para saber si se trata de variaciones o combinaciones tenemos que determinar si el orden en que se muestre esta lista tiene significado o no. En este caso es obvio que es importante. No es el mismo arreglo el de arriba que este otro:

24 Diciembre – 4 Enero – 2 Abril – 3 Septiembre – 4 Agosto – 31 Julio – 5 Marzo………..- 31 Julio

Son los mismos valores que arriba, pero colocados de otra forma. El significado es diferente, pues recordemos que en cada puesto hay una persona en concreto, y no es lo mismo que cumpla años el 4 de enero que el 24 de diciembre.

Con todos los datos expuestos, concluimos que se trata de variaciones con repetición. El número total de arreglos posibles es:

Ahora viene la parte más complicada: deseamos saber cuántos de esos arreglos contienen exactamente tres pizarras con la fecha “2 Abril”.

De ese total, comencemos contabilizando aquellos en los que la fecha “2 Abril” esté en las tres primeras posiciones. Es decir:

2 Abril – 2 Abril – 2Abril – ___ – ___ – ___- ___ – …………….- ___

Nos quedan 77 sitios, puesto que los tres primeros ya los tenemos ocupados. ¿De cuántas formas podemos rellenar esos 77 puestos? Fijémonos que ahora no tenemos 365 fechas disponibles, sino 364, porque el 2 de abril no podemos volver a utilizarlo (si lo hiciéramos el total de fechas “2 Abril” ya no sería tres).

Se trata, entonces de:

Eso sólo son aquellas en las que “2 Abril” está en las tres primeras posiciones. Pero si ahora esos “2 Abril” los colocamos en otro lugar distinto volverán a aparecer otras tantas.

Entonces, debemos preguntarnos de cuántas maneras podemos colocar esa fecha dentro de los 80 sitios que tenemos.

Para responder a esta cuestión nos es útil cambiar nuestra representación visual.

Ahora supongamos que tenemos tres casillas (una por cada “2 Abril”) y sobre ella escribimos qué posición dentro de la fila ocuparía.

Por ejemplo, los tres colocados al comienzo, como en el ejemplo de arriba, sería:

1 – 2 – 3

Este otro,

79 – 5 – 13

Significaría que hay un “2 Abril” en la posición 79, otro en la 5 y otro en la 13.

Determinemos ahora de qué tipo de cuenta se trata:

¿Cuántos sitios tengo para colocar elementos? 3

¿Cuántos elementos pueden colocarse en esos sitios? 80

¿Puedo repetir esos elementos? No, no tendría sentido un arreglo 5 – 5 – 27, cada persona tiene una y sola una fecha.

¿El orden importa? Veamos, ¿es lo mismo o diferente 20 – 1 – 7 que 1 – 20 – 7?

Dar un 2 Abril a la persona 20, a la 1 y a la 7 es lo mismo que dárselo a la persona 1, a la 20 y a la 7. Se trata, entonces, de combinaciones en vez de variaciones:

Por lo tanto, el total de arreglos que contienen tres “2 Abril” es

La probabilidad buscada será ese número dividido entre el total de posibilidades que calculamos al principio, es decir:

¡Sumamente pequeña, ni siquiera un uno y medio por mil!

Javier Montero