Utilización y Administración avanzadas de sistemas GNU/Linux y aplicaciones Software Libre para estudiantes universitarios

Software Científico

Josá Angel de Bustos Pérez

Copyright (c) 2.007 José Angel de Bustos Pérez .

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".


Tabla de contenidos

1. Introducción
2. Creación de Gráficos
Gnuplot
Características
Representaciones en coordenadas cartesianas, paramétricas esféricas y polares
Interfaces para Gnuplot
Recursos para Gnuplot
Superficie
Recursos para Superficie
Xfig
Recursos para Xfig
Dia
3. Sistemas de Algebra Computacional o CAS
Axiom
Recursos para Axiom
Giac/xcas
Recursos para Giac/xcas
Macaulay2
Recursos para Macaulay2
Maxima
Recursos para Maxima
Pari-GP
Recursos para Pari-GP
Yacas
Recursos para Yacas
Cadabra
Recursos para Cadabra
4. Software de Cálculo
Octave
Recursos para Octave
Scilab
Recursos para Scilab
Freemat
Recursos para Freemat
SNNS
Recursos para SNNS
5. Geometría
Geogebra
Geonext
6. Software Estadístico
R
Recursos para R
PSPP
Recursos para PSPP
Macanova
Recursos para Macanova
7. Edición de texto científico
TeXmacs
Recursos para TeXmacs
Kile
Recursos para Kile
Emacs
Recursos para Emacs
8. CAD
QCad
Recursos para QCad
PythonCAD
Recursos para PythonCAD
FreeCAD
Recursos para FreeCAD
9. Circuitos
Kicad
Monolito
Recursos para Kicad
Logisim
Recursos para Logisim
10. Química
Gperiodic
Recursos para Gperiodic
Garlic
Recursos para Garlic
Gchempaint
Recursos para Gchempaint
Gdis
Recursos para Gdis
Chemtool
Recursos para Chemtool
Easychem
Recursos para Easychem
Raster3d
Recursos para Raster3d
11. Sistemas de Información Geográfica
12. Fractales
Xaos
Recursos para xaos
Fyre
Recursos para Fyre

Capítulo 1. Introducción

El software libre siempre ha estado muy ligado a la universidad y ámbitos académicos. Por este motivo es fácil encontrar mucho software libre dentro del ámbito científico.

Aunque aquí se hará incapie en el software disponible para GNU/Linux muchos de los programas aquí expuestos funcionarán también en otros sistemas operativos.

El proposito de este documento es enseñar las opciones de que disponemos en el mundo del software libre y no su uso. Motivo por el cual en el CD de documentación se incluye la documentación que se utilizó en el curso extraordinario de la Universidad de Salamanca Herramientas en GNU/Linux para estudiantes universitarios que organizaron el Departamento de Informática y Automática de la Universidad de Salamanca, GLiSa y AUGCyL.

La mayoría del software científico que podemos encontrar en GNU/Linux sigue las ideas del mundo UNIX de creaci´n de pequeñas herramientas en línea de comando, muy específicas y potentes. Esto permite la interaccción entre ellas y la posibilidad de creación de interfaces gráficas a gusto de todos.

Capítulo 2. Creación de Gráficos

Gnuplot

Gnuplot es una herramienta en línea de comando que funciona en varios sistemas operativos.

A pesar de su nombre Gnuplot no tiene nada que ver con el proyecto GNU. El nombre se eligió para no tener problemas con otro software de representaciones gráficas llamado newplot.

En la página del proyecto podemos encontrar toda la información necesaria.

Características

Gnuplot permite realizar las siguientes tareas:

  • Representación gráfica de funciones y datos.

  • Representaciones en 2D y 3D.

  • Representaciones en coordenadas cartesianas, paramétricas, esféricas y polares.

  • Exportación de los gráficos a los formatos más populares como png , jpg, svg, ...

  • Creación de scripts.

  • Creación de animaciones.

  • Inclusión de multiples gráficas en un sólo gráfico.

  • Inclusión de multiples gráficas en una pantalla.

Representaciones en coordenadas cartesianas, paramétricas esféricas y polares

[jadebustos@dedalo ~]$ gnuplot


        G N U P L O T
        Version 4.0 patchlevel 0
        last modified Thu Apr 15 14:44:22 CEST 2004
        System: Linux 2.6.17.8

        Copyright (C) 1986 - 1993, 1998, 2004
        Thomas Williams, Colin Kelley and many others

        This is gnuplot version 4.0.  Please refer to the documentation
        for command syntax changes.  The old syntax will be accepted
        throughout the 4.0 series, but all save files use the new syntax.

        Type `help` to access the on-line reference manual.
        The gnuplot FAQ is available from
                http://www.gnuplot.info/faq/

        Send comments and requests for help to
                <gnuplot-info@lists.sourceforge.net>
        Send bugs, suggestions and mods to
                <gnuplot-bugs@lists.sourceforge.net>


Terminal type set to 'x11'
gnuplot> set dummy u,v
gnuplot> set angles degrees
gnuplot> set parametric

        dummy variable is t for curves, u/v for surfaces
gnuplot> set view 70, 40, 0.8, 1.2
gnuplot> set samples 32, 32
gnuplot> set isosamples 9, 9
gnuplot> set mapping spherical
gnuplot> set yzeroaxis linetype 0 linewidth 1.000
gnuplot> set ticslevel 0
gnuplot> set title "3D version using spherical coordinate system" 
gnuplot> set urange [ -90.0000 : 90.0000 ] noreverse nowriteback
gnuplot> set vrange [ 0.00000 : 360.000 ] noreverse nowriteback
gnuplot> splot cos(u)*cos(v),cos(u)*sin(v),sin(u) with lines lt 5 ,'world.dat' with lines lt 3 
gnuplot> 

Representación del globo terraqueo con Gnuplot.

Interfaces para Gnuplot

Xgfe

Xgfe es un interface gráfico para Gnuplot.

Su desarrollo está parado y en la página del proyecto podemos encontrar todo lo necesario sobre este programa.

Xgfe interface gráfico para Gnuplot.

UniGNUPlot

Interface en Tcl/Tk para Gnuplot.

UniGNUPlot interface gráfico para Gnuplot.

Gráfica generada con UniGNUPlot.

tkgnuplot

Interface en Tcl/Tk para Gnuplot.

Chart::Graph::Gnuplot

Interface en PERL para realizar gráficos con Gnuplot.

Gnuplot.py

Interface en Python para realizar gráficos con Gnuplot.

de.unidu.is.gnuplot

Interface en Java para realizar gáficos con Gnuplot.

GNUplotFortran

Interface en Fortran 95 para realizar gráficos con Gnuplot.

gnuplot-mode.el

Modo de emacs para facilitar la edición de scripts de gnuplot.

Superficie

Superficie es un programa para visualizar superficies en tres dimensiones.

Superficie generada con Superficie.

Recursos para Superficie

Xfig

Xfig es un programa para la creación de gráficos técnicos como diagramas. Una de sus características más importantes es que permite meter texto en comandos LaTeX lo cual permite una perfecta integración con documentos creados con dicha herramienta.

Xfig

Recursos para Xfig

Dia

Dia es una herramienta que permite la creación de diagramas. Trabaja con XML y permite exportar a los formatos más usados como JPG, PNG, EPS, SVG, WMF, XFIG, ...

Se pueden extender sus capacidades mediante scripting en python.

Capítulo 3. Sistemas de Algebra Computacional o CAS

Axiom

Axiom es un sistema de algebra computacional que se distribuye bajo una licencia tipo BSD. Se lleva desarrollando desde principios de los setenta y antes de liberarse como software libre fue un software comercial.

Axiom.

Recursos para Axiom

Giac/xcas

Sistema de algebra computacional compatible con MAPLE, mupad y TI89.

Se puede ejecutar en modo texto con giac o con interface gráfica xcas.

xcas es la interface gráfica de giac.

Recursos para Giac/xcas

Macaulay2

Macaulay2 es un sistema de algebra computacional orientado a la Geometría Algebraica y al Algrebra Commutativa.

Macaulay ejecutandose en Emacs.

Recursos para Macaulay2

Maxima

Maxima es un sistema de algebra computacional con aplicaciones al cálculo numérico y análisis.

Maxima puede ejecutarse en:

  • Entorno gráfico.

    Maxima ejecutandose en X-window.

  • Dentro de Emacs.

    Maxima ejecutandose en Emacs.

  • En línea de comando.

    Maxima ejecutandose en línea de comando.

  • En TeXmacs.

    Maxima ejecutandose en TeXmacs.

Recursos para Maxima

Pari-GP

Pari-GP es un sistema de algebra computacional orientado a teoría de números, aunque tambié puede trabajar con matrices, polinomios, series de potencias, ...

Pari-GP consta de una shell en línea de comando y una librería en C que se puede enlazar en nuestros programas.

Recursos para Pari-GP

Yacas

Yacas es un acrónimo para Yet Another Computer Algebra System.

Podemos usar Yacas de tres formas:

  • Con interface gráfico.

    Proteus es el interface gráfico de Yacas.

  • En consola.

    Yacas ejecutandose en consola.

  • Se puede ejecutar dentro de TeXmacs.

Yacas posee un mecanismo de plugins que permite la carga dinámica de librerias externas a Yacas. Mediante este mecanismo podemos ampliar las funcionalidades de Yacas.

Importante

Podemos utilizarlo en una arquitectura de cliente/servidor y utilizar un ordenador más potente para realizar los cálculos viendolos en el nuestro.

Recursos para Yacas

Cadabra

Cadabra es un sistema de algebra computacional orientado a la resolución de probleas de física teórica.

Cadabra y las identidades de Bianchi.

Cadabra ejecutándose en TeXmacs.

Recursos para Cadabra

Capítulo 4. Software de Cálculo

Existe multitud de software de cáculo.

Octave

Octave es un programa orientado al análisis numérico.

Octave se puede entender como una implementación libre de Mathlab, por describirlo de una forma sencilla.

Octave se puede ejecutar:

  • En línea de comando.

    [jadebustos@dedalo ~]$ octave
    
    GNU Octave, version 2.1.73 (i486-pc-linux-gnu).
    Copyright (C) 2006 John W. Eaton.
    This is free software; see the source code for copying conditions.
    There is ABSOLUTELY NO WARRANTY; not even for MERCHANTIBILITY or
    FITNESS FOR A PARTICULAR PURPOSE.  For details, type `warranty'.
    
    Additional information about Octave is available at http://www.octave.org.
    
    Please contribute if you find this software useful.
    For more information, visit http://www.octave.org/help-wanted.html
    
    Report bugs to <bug@octave.org> (but first, please read
    http://www.octave.org/bugs.html to learn how to write a helpful report).
    
    octave:1> 
    
    [jadebustos@dedalo ~]$ 
    
  • Ejecución en modo batch.

Octave no realiza representaciones gráficas. Para ello utiliza programas externos.

Normalmente se utiliza Gnuplot pero se puede configurar el programa a utilizar mediante la variable gnuplot_binary.

Scilab

Scilab fue diseñado para análisis numérico y cálculo matricial.

Scilab.

Recursos para Scilab

Freemat

Otra versión libre de Mathlab, que además tiene como objetivo extender las características de este.

Freemat.

Recursos para Freemat

SNNS

SNNS es un programa para trabajar con redes neuronales.

SNNS.

Recursos para SNNS

Capítulo 5. Geometría

Tabla de contenidos

Geogebra
Geonext

Geogebra

Geogebra es un programa para trabajar con geometría plana.

Geogebra

Geonext

Geonext es un programa para trabajar con geometría plana.

Capítulo 6. Software Estadístico

R

R es un lenguaje para cáculo estadístico.

R se inspiró en el programa S de los laboratorios Bell.

R

Recursos para R

PSPP

PSPP trata de dar una solución basada en software libre del programa comercial SPSS. Es un proyecto al que todavía le queda mucho camino por andar.

Recursos para PSPP

Macanova

Macanova es un software estadístico más completo que PSPP pero cuya interface de usuario dista de ser amigable.

Recursos para Macanova

Capítulo 7. Edición de texto científico

Las mejores y más potentes herramientas para la edición de texto científico son:

  • LaTeX.

  • Docbook, que no ofrece la calidad de LaTex para el texto científico pero que se está imponiendo en publicaciones web debido a su potencia y versatilidad.

Las herramientas que vamos a ver giran en torno a LaTeX.

TeXmacs

TeXmacs es un editor WYSIWYW (What You See Is What You What).

TeXmacs pretende ser una herramienta que combine la eficiencia de emacs y la potencia de LaTeX. Utiliza las fuentes de LaTeX pero no genera, directamente, código LaTeX. Aunque es posible exportarlo.

TeXmacs se integra con las siguientes herramientas:

  • Gnuplot.

  • Octave.

  • Yacas.

  • Xfig.

  • R.

  • Maxima.

  • Pari.

  • Dr. Geo.

  • Cadabra.

  • Qcl es un lenguaje de programación para ordenadores cuánticos.

  • Macaulay2.

  • GTybalt.

  • Giac.

  • Axiom.

Integración de Gnuplot con TeXmacs.

Recursos para TeXmacs

Kile

Kile es un entorno de desarrolo en LaTeX para KDE

Algunas características de Kile:

  • Podemos compilar el documento desde Kile.

  • Autocompletación de los comandos LaTeX.

  • Templates y patrones que hacen más fácil el empezar nuevos documentos.

  • Busqueda integrada entre el editor y el visor DVI.

  • Previews del documento.

Kile, LaTeX en KDE.

Recursos para Kile

Emacs

Emacs es el entorno de desarrollo por excelencia en el mundo del software libre.

Emacs como entorno de desarrollo para LaTeX.

Recursos para Emacs

Capítulo 8. CAD

QCad

QCad es un programa de CAD que maneja ficheros DXF y CFX.

Qcad CAD en GNU/Linux.

Recursos para QCad

PythonCAD

PythonCAD es un programa de CAD desarrollado en Python que utiliza XML para guardar sus datos.

PythonCAD, python, CAD y XML.

Recursos para PythonCAD

FreeCAD

FreeCAD es un programa de CAD de proposito general.

FreeCAD.

Recursos para FreeCAD

Capítulo 9. Circuitos

Kicad

Kicad es un programa creado para diseño de circuitos impresos.

Kicad diseño de circuitos impresos.

Monolito

Monolito es una librería de componentes libre de diseño electrónico para kicad.

Recursos para Kicad

Logisim

Logisim es una herramienta de diseño y simulación de circuitos lógicos digitales. Puede ser utilizado para el diseño de CPUs con propósitos educativos.

Para utilizarlo unicamente hay que descargarse el fichero .jar y ejecutar:

[jadebustos@dedalo]$ java -jar logisim-2.1.5.jar

Logisim diseño y simulación de circuitos lógicos y digitales.

Importante

Requiere tener instalada una máquina virtual Java.

Recursos para Logisim

Capítulo 10. Química

Gperiodic

Gperiodic nos permite consultar la tabla periódica de los elementos.

Gperiodic

Recursos para Gperiodic

Garlic

Garlic programa para la visualizació 3D de moleculas.

Garlic

Recursos para Garlic

Gchempaint

Gchempaint es un editor de estructuras químicas en 2D.

Gchempaint

Recursos para Gchempaint

Gdis

Gdis programa para tratamiento de moléculas en 3D. Soporta renderizado OpenGL.

Gdis

Recursos para Gdis

Chemtool

Chemtool nos permite dibujar moléculas químicas.

chemtool

Recursos para Chemtool

Easychem

Easychem nos permite dibujar moléculas químicas.

Easychem

Recursos para Easychem

Raster3d

Raster3d son un conjunto de herramientas que nos permiten la creación de imágenes de molélas y proteínas.

Imágen generada con Raster3d.

Recursos para Raster3d

Capítulo 11. Sistemas de Información Geográfica

Capítulo 12. Fractales

Xaos

Xaos es una potente herramienta para visualizar y experimentar con varios fractales. Permite grabar las imágenes generadas.

Xaos.

Recursos para xaos

Fyre

Fyre es un programa para crear fractales basados en funciones iteradas.

Fractales con Fyre.

Recursos para Fyre