Usar constantes físicas en (wx)Maxima

En una entrada anterior vimos cómo utilizar unidades de medida en wxMaxima gracias al paquete unit. En este artículo veremos cómo manejar constantes físicas.

Primero que nada debemos cargar unit de la forma ya comentada

load(unit)

y luego presionar Mayúscula-Intro. Ahora es el turno de cargar el paquete que nos ofrece la lista de constantes físicas

load (physical_constants)

Ya estamos listos. Las constantes se nombran con al menos un signo % delante. Por ejemplo %c es la velocidad de la luz en el vacío, %%e (con doble %) la carga fundamental del electrón… La lista de constantes disponibles puede obtenerse con

propvars (physical_constant)

Es importante notar que wxMaxima da formato a los subíndices (guión bajo) y superíndices (acento circunflejo), por lo que si en la lista vemos hbar para representar ℏ, la constante de Planck dividida por 2π, cuando tengamos que utilizarla tendremos que escribir h_bar.

Ahora bien, la instrucción anterior nos da solo la lista de símbolos, para saber qué representan estos podemos utilizar

get (%h_bar, description)

que nos dará

Planck constant $h/2\pi$

Este paquete mantiene la representación de la constante como su símbolo y no como su valor hasta tanto no le indiquemos de evaluarlo, por lo tanto si ejecutamos

%c*2*s

obtendremos

2 %c s

pero si ejecutamos

constvalue (%c*2*s)

obtendremos

599584916*s ` m/s

Que, como notará el lector, no ha simplificado las unidades. Pero siempre podemos escribir

% ``m

para convertir la entrada anterior a metros, obteniendo

599584916 ` m

Todo esto puede hacerse en un única línea. Por ejemplo

constvalue(1*kg*%c^2) ``J

nos dará

89875517873681764 ` J

en lugar de kg ` m^2/s^2. Por supuesto podemos utilizar prefijos, como kJ, nm, etcétera. Como siempre en wxMaxima podemos llamar a una línea anterior en lugar de copiar todo el cálculo.

Todo listo.

Anuncios

ConvertAll, el más versátil convertidor de unidades

Seguimos hablando de programas que aceptan unidades de medición. Esta vez nos toca convertir unidades.

La mayor parte de los convertidores de unidades que existen solo ofrecen una lista de combinaciones predefinidas, pero en ocasiones esto no es suficiente ya que nuestros cálculos pueden circular por derroteros impredecibles. ¿Convertir de «unidad astronómica al día» a «metro al segundo»? No importa cómo has llegado allí o si tiene sentido lo que has construido, ConvertAll te permitirá hacer la conversión que necesitas rápidamente gracias a una simple interfaz gráfica que te deja combinar las unidades que quieras, como quieras y sin limitaciones

El programa, que tiene una larga historia a cuestas (su primera versión pública fue en el 2001) está actualmente escrito en Python3 y utiliza las librerías gráficas PyQt5. También existe una versión JavaScript para utilizar desde el navegador.

Es interesante notar que ambos campos a los lados del signo igual pueden modificarse: si, como en la captura de pantalla escribimos en el de la izquierda el de la derecha mostrará la conversión, pero si escribimos en el de la derecha será el de la izquierda el que muestre un resultado. De esta forma podemos ir y venir entre dos combinaciones compatibles de unidades sin problemas.

ConvertAll está disponible en muchas distribuciones Linux, generalmente a través de algún repositorio extra (en openSUSE se encuentra en el repositorio KDE:Extra), pero en caso no se encuentre la última versión o no se quiera habilitar más repositorios, instalar el programa «a mano» es realmente simple. De hecho, ni siquiera es necesario «instalarlo», podemos tenerlo disponible en un usuario particular sin tener que hacer una instalación como administrador.

Por ejemplo, si queremos instarlo en la carpeta ~/bin/ConvertAll/ simplemente descargamos el archivo convertall-x.y.z.tar.gz, lo descomprimimos, entramos en la carpeta resultante y allí donde vemos el archivo install.py abrimos una terminal virtual y escribimos

python3 install.py -p ~/bin/ConvertAll

Nota: Si no se especifica el parámetro -p ~/bin/ConvertAll el programa se instalará en la dirección predefinida, que es /usr/local. En este caso se necesitará tener privilegios de administrador.

Ahora sí, solo nos quedará crear un acceso a la aplicación

~/bin/ConvertAll/bin/convertall

para utilizarla con comodidad. El icono del programa se encontrará en

~/bin/ConvertAll/share/icons/convertall

por lo que ya saben.


Como anécdota histórica, decir que el icono actual del programa fue introducido el 22 de enero del 2008 (¡hace ya una década!) y fue perpetrado por este pingüino, que en una de sus primeras (y últimas) incursiones en inkscape quiso agradecer de alguna forma a Doug Bell, autor del programa, por tan magnífica herramienta.

Usar unidades en (wx)Maxima

Maxima es un programa de álgebra simbólica que nos permite calcular derivadas, integrales, series, factorizar, resolver ecuaciones, autovalores y autovectores, series de Taylor, transformadas de Laplace… También nos permite realizar cálculos numéricos con precisión arbitraria, realizar gráficos de funciones en dos y tres dimensiones… realmente podrían llenarse muchos artículos solamente haciendo una lista de las oportunidades que nos da este magnífico programa.

wxMaxima es una interfaz gráfica para Maxima realmente bien lograda que simplifica el uso de las opciones más comunes de Maxima y no molesta en la utilización de las otras. Con una simple, pero completa interfaz gráfica de menús, botones y campo de escritura nos permite crear «cuadernos» donde no solo podemos realizar los cálculos sino también agregar anotaciones y comentarios sobre lo que estamos haciendo además de tener los gráficos «en línea», editar entradas anteriores, etcétera.

Hace unos meses hablé de SpeedCrunch y más recientemente del renacido Qalculate!, dos calculadoras de escritorio que permite trabajar con unidades. Ahora bien, es fácil encontrarse con situaciones donde una calculadora no será suficiente por lo que podríamos preguntarnos si es posible trabajar con un sistema más potente desde el punto de vista matemático que también nos permita manejar unidades.

Y justamente es sobre esto que trata el presente artículo.

Preparando el campo

Por defecto Maxima no ofrece opciones de trabajar con unidades, pero nos da un paquete que podemos leer cada vez que lo necesitemos.

Antes de comenzar, para aquellos que no estén familiarizados con wxMaxima es importante saber que para que una instrucción venga ejecutada debemos presionar Mayúsculas-Intro.

Ahora sí, en la linea de comando de wxMaxima ejecutamos

load("unit")

El paquete tardará un momento en cargarse, pero luego de que la palabra Done se presente estaremos listos para trabajar.

Trabajando con unit

El sistema comprende prácticamente cualquier unidad de medida, incluso las imperiales, pero por defecto siempre convierte a las unidades básicas del sistema MKS.

Si queremos que escriba N (Newton) en lugar de \displaystyle kg \frac{m}{s^2} podemos utilizar la instrucción

setunits(N)

tal y como se ve en la siguiente captura de pantalla

Como puede verse wxMaxima nos permite llamar la salida de una expresión como variable de otra.

Y bueno, que el programa da para muchísimo más. Ahora queda bajo la responsabilidad del lector el profundizar sobre el tema.

Con la segunda entrada del menú de Ayuda de wxMaxima (la primer entrada hace cosas raras) tendremos acceso a los manuales y podremos buscar más información sobre unit. Y sobre todo lo demás, claro está.

 

La nueva vida del proyecto Qalculate!

Qalculate! es una calculadora científica para el escritorio con una larga y por momentos problemática historia.

Con una potente librería de base que puede ser utilizada por otros programas (Plasma puede utilizarla para hacer cálculos desde krunner) permite trabajar con unidades, constantes físicas, realizar gráficos, utilizar números complejos, matrices, vectores, ofrecer precisión arbitraria, etcétera.

En el 2006 el desarrollo de la aplicación comienza a frenarse, dando solo dos versiones menores hasta el 2010 donde el proyecto parece quedar huérfano.

Pero todo vuelve a tomar fuerza en el 2016 cuando un nuevo desarrollador se hace cargo del código y el desarrollo comienza a acelerarse. Y mucho: unas 10 versiones en un año.

Una nueva interfaz gráfica en GTK3, infinitas correcciones de error y nuevas características hacen que este ya magnífico programa se vuelva casi imprescindible.

Al momento de escribir este artículo ya se encuentra en la versión 2.1. El desarrollo reciente ha sido tan veloz que salvo por algunas distros rolling particularmente agresivas la mayor parte de las distribuciones Linux ofrecen aún la versión 0.9.12 o incluso anteriores.

Para instalar la última versión en openSUSE tenemos el repositorio de tglatt. Para no crear conflictos con la versión oficial, la de este repositorio ha sido renombrada como qalculate12 mientras que la interfaz gráfica se llama qalculate-gtk.

Como comentamos antes, podemos trabajar con todo tipo de unidades y constantes físicas.

Y además podemos realizar conversiones

(originalmente me dio el resultado en joule sobre metro).

En definitiva, que con este nuevo empujón en su desarrollo Qalculate! se confirma como la mejor calculadora de escritorio en existencia. Un veterano que ha sabido resurgir de sus cenizas y que sigue siendo más fuerte que otros programas que intentan tomar su lugar.

40 años de las misiones Voyager

Lanzadas en 1977 para recorrer el sistema solar exterior, las misiones Voyager han logrado mucho más de lo que sus diseñadores originalmente pensaron como remotamente posible.

A casi 19 horas luz del Sol, la Voyager 1 ha superado el límite de la heliosfera donde el viento solar y el campo magnético de nuestra estrella pierde la partida frente al medio galáctico, convirtiéndose en la primera nave interestelar lanzada por la humanidad.

Los descubrimientos de las Voyager son simplemente impresionantes y han revolucionado completamente nuestra comprensión del sistema solar: los volcanes en Io, la atmósfera de Titán, el espacio interestelar… y el famoso «pale blue dot».

No voy a tan siquiera soñar con escribir un artículo que compita con el siempre impresionante trabajo de Daniel Marín, por lo que los dejo con algo que él preparó para el 35 aniversario:

La historia de las Voyager, los mensajeros interestelares de la humanidad

También interesante: La Voyager 1 ya está oficialmente en el espacio interestelar

Seguramente hoy publicará también algunos de sus imprescindibles artículos para celebrar esta fecha. Si es así, actualizo los enlaces 😉

Más:

[BBC]Voyager 1 at 40: Scientists ‘amazed’ 1970s space probe still works

Una foto de Júpiter tomada por la Voyager 1 y procesada con tecnología actual

SpeedCrunch: una potente calculadora científica

El proyecto tiene ya algunos años y recuerdo haberlo probado en el pasado, siempre dejándolo a un lado frente a otras alternativas como Qalculate!, pero hoy se me ha dado por probar de nuevo y la sorpresa ha sido realmente grata.

La versión 0.12 de SpeedCrunch no solo ha sido adaptada a Qt5, también ofrece nuevas características que resultan de gran utilidad para realizar rápidos cálculos técnicos. En particular, ¡finalmente puede trabajar con unidades!

Por ejemplo, escribiendo

2 * 10^6 newton / (meter^2)

obtenemos

= 2000000 pascal

Por defecto expresa todos los resultados en el sistema internacional, pero también es posible transformar unidades con la instrucción «in». Por ejemplo escribiendo

3*10^8 meter / second in kilo meter / hour

se obtiene

= 1080000000 kilo meter / hour

Si presionamos F5 los resultados pasarán a notación científica (1,08e9 kilo meter / hour) mientas que con F2 solo los números muy grandes o muy pequeños lo harán. Hay más opciones de formato de salida en Configuración → Formato del resultado.

También en el menú Configuración podemos habilitar muchas otras opciones, como trabajar con números complejos. Eso sí, usa la j para la unidad imaginaria en lugar de la i… estos ingenieros…

La lista de funciones disponibles es realmente importante. De hecho SpeedCrunch es la única calculadora que conozco que permite calcular logaritmos de base arbitraria:

log(1/2;128)

nos dará, correctamente

= -7

La aplicación todavía tiene algunos pequeños «puntos ásperos» que seguramente se corregirán en futuras versiones. Por ejemplo, la lista de constantes es interesante, pero al seleccionar una se introduce solo el número, no sus unidades. Aún así resulta práctica y es muy simple de utilizar además de potente.

En fin, que finalmente tengo una calculadora de escritorio que hace lo que quiero.

Los usuarios de openSUSE tenemos la última versión de SpeedCrunch en el repositorio KDE:Extra.

SciDAVis 1.18

Ajustes polinomiales, logarítmicos, exponenciales, con funciones definidas por el usuario, trasformadas rápidas de Fourier, filtros, integración y derivación numérica… Que el usuario elija.

También permite operar rápidamente sobre los datos, definir funciones, personalizar los gráficos, exportarlos en formato SVG o PDF para incluirlos en cualquier documento…

Además de descargar el código fuente desde la página principal del proyecto es posible instalarlo rápidamente en varias distribuciones Linux (Fedora, openSUSE, Debian, xubuntu…) desde este repositorio.

En Editar → Preferencias → General → Aplicación podemos elegir el Estilo de la interfaz gráfica. Seleccionando Breeze se integra bastante bien al escritorio Plasma por lo que casi que ni se nota que sigue siendo una aplicación Qt4.