14/5/2012: La versión 5.0 de SAGE ha sido publicada.
12/3/2011: agregado Rstudio,
una IDE para el software estadístico R.
Ecuaciones
Diferenciales Ordinarias. Una introducción con SAGE. Por
José M. Gallardo (Universidad de Málaga)
8/12/2010: Las librerias
GotoBlas2 (una implementación de Blas) son ahora software
libre bajo la licencia BSD (pero no serán más
activamente desarrolladas por el TACC, perteneciente a la Universidad de
Texas en Austin).
9/9/2010: Se acaba de publiicar un muy interesante libro sobre Sage (en francés) titulado Calcul mathématique avec Sage.
En esta página encontrarán enlaces a diversos programas (y librerías) útiles para matemática, clasificados en distintas categorías.
Casi todos estos programas funcionan bajo GNU/Linux y otros sistemas operativos tipo Unix, pero algunos de ellos también se pueden usar bajo MS-Windows.
Además todos ellos son Software Libre (no debe confundirse este concepto con el de software gratuito). Si bien esta página procura indicar qué tipo de licencia utiliza cada programa, por supuesto para información precisa sobre este punto, hay que referirse a la documentación de cada programa, porque lo indicado en esta página puede estar equivocado o ser incompleto.
La licencia más utilizada por el Software Libre es la GNU General Public License de la Free Software Foundation . Otra licencia de uso frecuente es la Licencia BSD Modificada.
Aquí pueden ver las diaspositivas de mi charla Software Libre para enseñar o aprender Matemática: Porqué y Cómo donde desarrollo la fundamentación de porqué creo que debería utilizarse exclusivamente software libre tanto para la docencia como la investigación en matemática, y menciono algunos de los programas libres más recomendables (incluidos en esta página).
TeX es un sistema de procesamiento de textos diseñado por Donald Knuth, que es especialmente apto para escribir textos de matemática. Se ha convertido en el standard utilizado por toda la comunidad matemática. Existen varios dialectos de TeX, siendo quizás LaTeX el más sencillo de usar.
Aprender a usar LaTeX lleva un cierto tiempo y esfuerzo, pero uno se ve ampliamente recompenzado por su facilidad de uso (una vez que uno se acostumbra a usarlo) y la calidad final de los documentos que se generan.
TeX es software libre.
TeX suele venir con todas las distribuciones de GNU/Linux (la distribución Texlive de TeX es la más usada en GNU/Linux)
Para MS-Windows, una distribución recomendable por su facilidad de instalación es MikTeX .
Los usuarios de Mac OS pueden consultar esta página
A quienes deseen aprender a usar LaTeX, les recomiendo The not so short introduction to LaTeX (or LaTex in 87 minutes). (Hay una versión versión en castellano)
|
Mini Tutorial de LaTex
|
| Material de la charla
LaTeX: Una Herramienta para procesar textos utilizando software libre
(Es una versión actualizada de la charla que dí con el título ¡Cuidá tu texto: usá LaTeX! , en el ciclo de charlas del GlugCEN. |
| Texmaker | Editor multiplataforma para LaTeX (GPL) |
| Kile | Editor y entorno integrado para escribir en LaTeX para KDE (GPL) (¡recomendado!) |
| Lyx | Para poder escribir en LaTeX, ¡viendo como se verá lo que estamos escribiendo al mismo tiempo ! (GPL) |
| GNU TeXmacs | Un procesador de textos científico que usa las fuentes de TeX pero que tiene una interface amigable. Inspirado en TeX y en Emacs (GPL) |
| TeXnicCenter | Es un entorno integrado para escribir en LaTeX bajo MS-Windows. (GPL) |
| KBibTeX | Un editor amigable para bibliografias de BibTeX para el entorno KDE. (GPL) |
| Comprehensive Tex Archive | de todo sobre el TeX (también hay un mirrror en la Universidad de Chile) |
| Donald E. Knuth | La página personal del creador de TeX. |
| TUG | Grupo de Usuarios de TeX. |
| CervanTeX | Grupo de usuarios de TeX hispanohablantes. |
| Latex-Project.org | Página del proyecto LaTeX. |
| Short Math Guide for LaTeX | Una guía sobre como escribir fórmulas matemáticas en LaTeX (por Michael Downes, AMS) |
| Userguide to the amsmath package | Manual del paquete amsmath |
| A Survey of Free Math Fonts for TeX and LaTeX | Un artículo por Stephen G. Hartke. |
| The LaTeX font catalogue | Un catálogo de tipografías para LaTeX. |
| LaTeX en WikiBooks | Un libro colaborativo (en Wiki) sobre LaTeX |
Un sistema de álgebra computacional es un sistema que puede efectuar operaciones simbólicas tales como multiplicar polinomios, o calcular derivadas e integrales.
| Maxima | Un sistema de álgebra computacional bastante completo escrito en Lisp.
Interfase gráfica recomendada: wxMaxima. ¡Muy fácil de usar! | GNU GPL |
| SAGE | Un sistema de álgebra computacional, que
integra
muchos
otros paquetes pre-existentes, utilizando una
interface común de alto nivel en Python, lo que lo hace fácil de programar
y extender. Está en activo desarollo. Otra característica destacable es su interfase vía un navegador web (Sage Notebook). Para una buena ilustración de las capacidades de Sage pueden ver estas capturas de pantalla, que muestran como usar Sage para graficar funciones y resolver problemas de cálculo elemental. Un muy interesante libro sobre Sage (en francés) es Calcul mathématique avec Sage | GNU GPL |
| Axiom | Un excelente sistema para álgebra computacional, con una jerarquía de tipos matemáticamente correcta. Axiom se destaca también por poseer una
documentación sumamenta completa (utiliza la filosofía de Literate
Programming). Nota: Recientemente el proyecto Axiom tuvo dos
forks
OpenAxiom y
Fricas | Modified BSD License |
| Yacas | Un sistema de álgebra computacional pequeño y flexible. | GNU GPL |
| GiNaC | GiNaC is not a Computer Algebra System: una libreria en C++ para realizar cálculos simbólicos. | GNU GPL |
| Sympy | Un paquete para operaciones simbólicas en Python | BSD (modificada) |
| Reduce | Un sistema de álgebra computacional portable, de propósito general. | BSD (modificada) |
| Singular | Un sistema de Álgebra Computacional para cálculos con polinomios, especialmente pensado para geometría algebraica. | GNU GPL |
| Macaulay2 | Un sistema para geometría algebraica y álgebra conmutativa. | GNU GPL |
| GAP | Grupos, Algoritmos y Programación | GAP Copyright |
| Giac/Xcas | Una libreria en C++ con tipos para Algebra Computacional con una interface de usuario (Xcas). | GNU GPL |
| Mathomatic | Un pequeño programa de cálculo simbólico. | GNU LGPL |
| Jacal | Programa interactivo de matemática simbólica. | GNU GPL |
| Mathics | Un sistema de álgebra computacional en línea. Usa Sympy y opcionalmente Sage. | GNU GPL |
| Pari/Gp | Excelente sistema de álgebra computacional, muy usado para Teoría de números | GNU GPL |
| NTL | Una Libreria de clases en C++ para Teoría de Números | GNU GPL |
| NZMATH | Un sistema para cálculos de tía de números basado en Python | BSD Licence |
| FLINT | Fast Library for Number Theory ("Librería rápida para teoría de números") | GNU GPL |
| LabPlot | Un progrma para graficación de datos y funciones en 2D y 3D, para KDE 3 | GNU GPL |
| Gnuplot | Un programa para realizar gráficos de funciones. | Freeware |
| GNU Plotutils | Diversas utilidades para realizar gráficos. Vale la pena destacar "ode" , un sencillo programa para graficar soluciones de ecuaciones diferenciales ordinarias. | GNU GPL |
| K3DSurf | Un programa para graficar funciones en 3D para KDE | GNU GPL |
| QtiPlot | Un programa para graficación y análisis de datos. | GNU GPL |
| SciDavis | Un programa para graficación y análisis de datos. ( fork de QtiPlot) | GNU GPL |
| ParaView | Excelente progrma de visualización de datos científicos en 2D y 3D usando VTK. | Paraview Copyright (BSD Licence) |
| Grace | Programa para gráficos en 2D | GNU GPL |
| Extrema | Un programa para visualización y análisis de datos. | GNU GPL |
| Kst | Un programa para gráficar y análizar datos científicos en tiempo real. | GNU GPL |
| Gemomview | Un programa para visualizar objetos geométricos en 3D | GNU LGPL |
Las siguientes librerías son útiles para crear gráficos científicos:
| VTK | The Vizualization Toolkit | VTK copyright |
| Gltools | Una librería para realizar gráficos científicos usando OpenGL. | MIT License |
| The Plotlib Toolkit | Librería de clases para gráficos de funciones usando Java 2 | GNU GPL |
| Matplotlib | Librería para gr´ficos en 2D en Python. | Matplotlib Licence |
| Assymptote | Un lenguaje para gráficos vectoriales, orientado a aplicaciones científicas. | GNU LGPL |
Los siguientes son programas interactivos para cálculo numérico:
| GNU Octave | Excelente programa para realizar todo tipo de cálculos numéricos. Tiene una sintaxis compatible con Matlab y permite realizar gráficos utilizando Gnuplot. Alternativa libre a Matlab. Interfase gráfica recomendada: QtOctave. | GNU GPL |
| SciLab | Otro programa para cálculo numérico a' la Matlab, desarrollado por
la gente del INRIA. Posee una interfase
similar y una sintaxis basante compatible con Matlab.
Ideal para usarlo en los cursos de Elementos de Cálculo Numérico o Análisis Numérico. | CeCILL [1] |
| FreeMat | Otra alternativa libre a Matlab. | GNU GPL (Anteriormente MIT License) |
| Euler | Un programa para cálculo numérico. | GNU GPL |
[1]: A partir de la versión 5.0. Las versiones anteriores de Scilab utilizaban otra licencia diferente, considerada no libre por la FSF.
Las siguientes librerías proporcionan rutinas útiles para cálculo numérico:
| GNU GSL | The GNU Scientific Library: Una colección de rutinas para análisis numérico. | GNU GPL |
| Blitz++ | Una librería en C++ para computación científica. | GPL / Blitz++ Artistic License |
| BLAS: Basic Linear Algebra | Rutinas básicas para Álgebra Lineal (en Fortran) | Freely Available |
| LAPACK: Linear Alegrbra Package | Paquete para Álgebra Lineal (en Fortran) | Freely Available |
| Atlas | Una libreria optimizada para Algebra Lineal. | BSD-style |
| Slate++ | Simple Linear Algebra TEmplates: Una librería en C++ para álgebra lineal. | GNU GPL |
| Armadillo | Otra librería para álgebra lineal numérica en C++. | GNU LGPL |
| ALP | Una librería de clases en C++ para algebra lineal y polinomios | GNU LGPL |
| SuiteSparse | Una colección de rutinas para trabajar con matrices ralas (sparse matrix) creada por Tim Davis | GNU GPL/ GNU LGPL (dependiendo del paquete). |
| LinBox | Una librería de templates en C++, para álgebra lineal exacta sobre los enteros, y cuerpos finitos. | GNU LGPL |
Los programas y librerías de esta sección están específicamente pensados
para la resolución numérica de ecuaciones diferenciales.
| Iode | Ejemplos de resolución de ecuaciones diferenciales usando GNU Octave. | GNU GPL |
| Auto | Para problemas de continuación y bifurcación en ecuaciones diferenciales ordinarias | AS IS |
| Cactus | Un programa para resolver (numéricamente) ecuaciones en derivadas parciales. | GNU GPL |
Las siguientes librerías implementan métodos de elementos finitos para resolver ecuaciones en derivadas parciales:
| Fenics | Un proyecto colaborativo para computación científica. En particular métodos de elementos finitos para EDP. | GNU GPL |
| FreeFem | Una familia de programas para elementos finitos en 3D. | GNU GPL |
| Alberta FEM | Una librería para elementos adaptativos finitos en 2D y 3D | GNU GPL [1] |
| GMSH | Generador de mallas para elementos finitos en 3D. | GNU GPL |
| DUNE: Distributed and Unified Numerics Environment | Clases C++ para elementos finitos en 2D y 3D. | GNU LGPL |
| DEAL.II | Una librería de clases en C++ para Elementos Finitos (algoritmos adaptativos) | DEAL.II Licence |
| Animath | Una librería para elementos finitos en 3D, escrita en C++ para simulaciones de fluidos. | BSD License |
Los siguientes programas están pensados para aplicaciones a la ingeniería:
| FElt | Un programa para elementos finitos. | GNU GPL |
| Impact | Elementos finitos para simulaciones dinámicas (en Java ) | GNU GPL |
| GLPK | GNU Linear Programming Kit: una libreria en C para programación lineal. | GNU GPL |
| Cvxopt | Módulos en Python para problemas de optimización convexa. | GNU GPL |
| Tango | Trustable Algorithms for Nonlinear General Optimization (Algoritmos confiables para optimización nolineal general). | GNU GPL |
| R | Un lenguaje para cálculos y gráficos estadísticos. Interfase (IDE) recomendada: RStudio. | GNU GPL |
| SalStat | Un software para el análisis estadístico de datos. | GNU GPL |
| Root | Un software para análisis de datos desarrollado por el CERN. | GNU LGPL |
| GNU Getrl | Un programa para regresión, series de tiempo y econometría. | GNU GPL. |
Lecturas recomendadas:
Ver también: The R Graph Gallery (galería de gráficos generados usando R)
| GCC | Colección de compiladores de GNU para diferentes lenguajes (C,C++,Java,Fortran) | GNU GPL |
| Python y la computación científica | Python es un lenguaje de scripting con una sintaxis clara y fácil de usar. Esta página reune algunas herramientas en Python para computación científica. | |
| SciPy: Scientific Tools for Python | Un conjunto de módulos para Python , útiles para computación científica. | BSD |
| Scientific Python | Otro paquete para computación científica en Python. | CeCill |
| IPython | Un intérprete mejorado para Python (especialmente pensado para computación científica). | BSD |
| Spyder | Una IDE para Python pensada un entorno científico.Integra NumPy, SciPy, Matplotlib e iPython. | MIT License. |
| Yorick | Un lenguaje interpretado para simulaciones científicas. | Yorick copyright |
| GMP | The GNU Multiple Precision aritmetic library: una librería para efectuar operaciones con números enteros, racionales y de punto flotante con precisión arbitraria. | GNU LGPL | |
| MPIR | Un fork de GMP. | GNU LGPL v2+ | |
| GNU Libmatheval | Una librería para evaluar expresiones matemáticas. | GNU GPL | |
| CLN | Una librería de clases C++ para manipular números de distintos tipos. | GNU GPL | |
| MPFR | Una librería para cálculos en punto flotante con precisión múltiple y redondeo exacto, basada en GMP. | LGPL | |
| Givaro | Una librería en C++ para cálculos aritméticos y algebraicos. | GNU GPL | |
| CCMATH | Una librería en C que provee diversas funciones matemáticas | GNU LGPL | |
| FFTW | Una librería en C para calcular la transformada discreta de Fourier. | GNU GPL | |
| QuantLib | Una librería para matemática financiera. | modified BSD License | |
| FXT | Una librería de algoritmos de transformadas ortogonales rápidas. Viene acompañada con un muy interesante libro Algorithms for Programmers. | GNU GPL | |
| Gambit | Una libreria para teoría de los juegos en juegos finitos. | GNU GPL | |
| Libecc | Una Librería en C++ para criptografía basada en curvas elípticas. | GNU GPL | |
| GluCat | Una librería de clases en C++ para álgebras de Clifford. | GNU LGPL | |
| Mpmath | Una librería para cálculos de precisión arbitraria en Python | BSD | |
| Lie | Un paquete para cálculos sobre grupos de Lie y sus representaciones. | GNU LGPL | |
| Math.NET | Una librería para métodos numéricos y simbólicos para .NET (puede utilizarse con Mono) | BSD Licence |
| Hilbert II | ¿La resurrección del programa de Hilbert? | GNU FDL |
| Metamatemath | Demostraciones de teoremas, verificables por computadora. | Metamath copyright |
| HOL | Un sistema de demostración automatica de teoremas, para lógicas de órden superior. | BSD License |
| Coq | Un sistema para manejar pruebas formales. | GNU LGPL |
| MiniSat | Un resolvedor minimalista para el
problema
de la satisfabilidad booleana. (ver también Satlib: una colección de software y materiales relacionados con este problema). | MIT Licence |
Les recomiendo también estos sitios:
Aclaración Importante: Las opiniones expresadas en estas
páginas son estrictamente personales.
Estas páginas no son una
publicación de la Universidad de Buenos Aires.