Siguiente: , Anterior: , Subir: unit   [Índice general][Índice]

78.1 Introducción a units

El paquete unit permite al usuario hacer cambios de unidades y llevar a cabo el análisis dimensional de las ecuaciones. La forma de operar de este paquete es radicalmente diferente de la del paquete original de Maxima; mientras que en el paquete original era tan solo una lista de definiciones, aquí se utiliza un conjunto de reglas que permiten seleccionar al usuario en qué unidades debe devolverse la expresión final.

Junto con el análisis dimensional, el paquete aporta una serie de herramientas para controlar las opciones de conversión y simplificación. Además de la conversión automática adaptable a las necesidades del usuario, el paquete unit permite hacer conversiones a la manera tradicional.

Nota: Cuando los factores de conversión no son exactos, Maxima los transformará a fracciones como consecuencia de la metodología utilizada para simplificar las unidades. Los mensajes de aviso concernientes a estas transformaciones están desactivados por defecto en el caso de las unidades (lo habitual es que estén activados en otros contextos) debido a que al ser una operación muy frecuente, serían un estorbo. El estado previo de la variable ratprint queda restaurado tras la conversión de las unidades, de manera que se mantendrá la opción seleccionada por el usuario; en caso de que éste necesite ver dichos avisos, podrá hacer la asignación unitverbose:on para reactivarlos desde el proceso de conversión de unidades.

El paquete unit se aloja en el directorio share/contrib/unit y se ajusta a las convenciones de Maxima para la carga de paquetes:

(%i1) load("unit")$
******************************************************************* 
*                       Units version 0.50                        * 
*          Definitions based on the NIST Reference on             * 
*              Constants, Units, and Uncertainty                  * 
*       Conversion factors from various sources including         * 
*                   NIST and the GNU units package                * 
******************************************************************* 
 
Redefining necessary functions... 
WARNING: DEFUN/DEFMACRO: 
         redefining function TOPLEVEL-MACSYMA-EVAL ...
WARNING: DEFUN/DEFMACRO: redefining function MSETCHK ...
WARNING: DEFUN/DEFMACRO: redefining function KILL1 ...
WARNING: DEFUN/DEFMACRO: redefining function NFORMAT ...
Initializing unit arrays... 
Done. 

Los avisos del tipo WARNING son normales y no deben interpretarse como errores; tan solo indican que el paquete unit está redefiniendo funciones que ya estaban definidas en Maxima. Esto es necesario para que las unidades se gestionen de forma correcta. El usuario debe tener en cuenta que si otros paquetes han cambiado las definiciones de estas funciones, tales cambios serán ignorados por el proceso de carga de unit.

El paquete unit también carga el fichero de Lisp unit-functions.lisp, el cual contiene las funciones Lisp necesarias.

El autor principal de este paquete es Clifford Yapp, quien ha recibido ayuda y asistencia, entre otros, de Barton Willis y Robert Dodier.


Siguiente: , Anterior: , Subir: unit   [Índice general][Índice]