El tipo abstracto de datos de los polinomios en Haskell

Como comenté en la entrada anterior, estoy elaborando los apuntes de los temas del curso Informática del Grado en Matemáticas (2010-11) no incluidos aún en el libro Temas de programación funcional (2010-11).

Uno de los temas en los que he estado trabajando últimamente es en el de los tipos abstractos de datos (TAD). Además de los habituales (pilas, colas, colas de prioridad, conjuntos, tablas, árboles binarios de búsqueda, montículos y árboles AVL), un TAD especialmente adecuado para los estudiantes de matemáticas es el de polinomios. A continuación muestro la implementación que estoy diseñando en Haskell para incluirla en el tema.

Del código deseo resaltar las siguientes características:

  • Independización de los resultados de las implementaciones mediante las funciones de escritura.
  • Comprobación de las implementaciones con QuickCheck mediante las funciones generadoras de polinomios.

A continuación muestro los ficheros con los códigos desarrollados.
Read More “El tipo abstracto de datos de los polinomios en Haskell”

Libro de introducción al cálculo simbólico con Maxima (versión 2)

En una entrada anterior anuncié la publicación de la primera versión de un libro de introducción al cálculo simbólico con Maxima.

He publicado una nueva versión del libro en la que he eliminado erratas e incluidos los comentarios recibidos.

Esta nueva versión es la que usaré este curso en la asignatura de Informática de 1º de Matemáticas.

En el libro se hace una presentación de Maxima a través de ejercicios resueltos (que se comentan en clases) y propuestos (para resolver por los alumnos en la wiki de la asignatura y, posteriormente, comentar as soluciones en clase).

Esta es la segunda versión del libro y he incluido también las soluciones de los ejercicios propuestos. Espero vuestros comentarios para las siguientes versiones.

Relación entre el número e y los números primos en Maxima

En el artículo anterior comenté la relación entre los números primos y el número e expresada mediante la fórmula


 e = \displaystyle\lim_{n \to{+}\infty}\displaystyle\sqrt[p_n]{\displaystyle\prod_{i=1}^n p_i}

donde p_i es el i-ésimo número primo. Así mismo mostré un ejercicio en Haskell para comprobarla.

En el artículo de hoy presento un ejercicio para comprobar la fórmula anterior en Maxima, pensado para el curso de Informática (del Grado de Matemáticas) y el libro Introducción al cálculo simbólico con Maxima.

El ejercicio es el siguiente

Read More “Relación entre el número e y los números primos en Maxima”

Libro de introducción al cálculo simbólico con Maxima

He aprovechado los primeros días no laborables para recopilar el material sobre cálculo simbólico en Maxima que he usado en las asignaturas Informática de 1º de Matemáticas) y Sofware libre para la enseñanza y aprendizaje de las Matemáticas. Fruto de dicha recopilación es el libro Introducción a Maxima.

En el libro se hace una presentación de Maxima a través de ejercicios resueltos (que se comentan en clases) y propuestos (para resolver por los alumnos en la wiki de la asignatura y, posteriormente, comentar as soluciones en clase).

Esta es la primera versión del libro y he incluido también las soluciones de los ejercicios propuestos. Espero vuestros comentarios para las siguientes versiones.

Reanudación

Después de 4 meses, reanudo la escritura en Vestigium. Como uno de sus objetivos era servir de diario de las publicaciones en mi sitio en la Red, voy a resumir las realizadas desde la anterior entrada en Vestigium.

He publicado una introducción al sistema de cálculo simbólico Maxima que he usado en las asignaturas de I1M (Informática de 1º de Matemáticas) como en la de SLEAM (Sofware libre para la enseñanza y aprendizaje de las Matemáticas). Los temas y ejercicios publicados son los siguientes:

las relaciones de ejercicios:

Además, en I1M (Informática de 1º de Matemáticas) he publicado dos nuevos temas sobre diseño de algoritmos con Haskell:

En la página de publicaciones he añadido las dos más recientes:

Finalmente, en la wiki del Grupo de Lógica Computacional he añadido las formalizaciones de teorías en PVS: