I1M2013: Ejercicios de cálculo numérico en Haskell

En la primer parte de la clase de hoy de Informática de 1º del Grado en Matemáticas se han explicado las soluciones de los ejercicios de la 20ª relación, en la que se definen funciones para resolver los siguientes problemas de cálculo numérico:

  • diferenciación numérica,
  • cálculo de la raíz cuadrada mediante el método de Herón,
  • cálculo de los ceros de una función por el método de Newton y
  • cálculo de funciones inversas.

Un aspecto a destacar desde el punto de vista de la programación es el uso de la abstracción de procedimientos.

Los ejercicios, y sus soluciones, se muestran a continuación.
Read More “I1M2013: Ejercicios de cálculo numérico en Haskell”

PeH: La conjetura de Gilbreath en Haskell

Se considera el siguiente proceso: (1) escribir los 5 primeros números primos, (2) restar cada dos números consecutivos, escribiendo los resultados en valor absoluto, hasta quedarse con un único número se obtiene la siguiente tabla:

Se observa que todas las filas comienza con el número 1.

Repitiendo el proceso empezando con los 8 primeros números primos se obtiene la siguiente tabla:

Se observa que, de nuevo, todas las filas comienza con el número 1.

La conjetura de Gilbreath afirma que si escribimos la sucesión de números primos completa y después construimos las correspondientes sucesiones formadas por el valor absoluto de la resta de cada pareja de números consecutivos, entonces todas esas filas que obtenemos comienzan siempre por 1.

En los siguiente ejercicios comprobaremos experimentalmente con Haskell dicha conjetura. Para la representación, usaremos la simétrica de la que
hemos comentado anteriormente; es decir,

en la que la primera columna son los números primos y el elemento de la fila i y columna j (con i, j > 1) es el valor absoluto de la diferencia de los elementos (i,j-1) e (i-1,j-1).

La relación de ejercicios (elaboradad para la asignatura de Informática de 1º del Grado en Matemáticas y para la siguiente versión del libro Piensa en Haskell) es
Read More “PeH: La conjetura de Gilbreath en Haskell”

I1M2012: El TAD de los polinomios en Haskell (1)

En la clase de hoy de Informática de 1º del Grado en Matemáticas hemos estudiado el tipo abstracto de los polinomios y su implementación en Haskell.

Comenzamos la clase analizando las posibles representaciones de los polinomios y, como consecuencia, establecer la signatura y las propiedades del TAD de los polinomios.

A continuación, estudiamos tres prosibles representaciones del TAD de los polinomios: mediante tipos algebraicos, mediantes listas dispersas y mediante listas densas.

Finalmente, estudiamos la implementación de los polinomios como tipo algebraico y mediantes listas dispersas.

Las transparencias usadas en la clase son las páginas 1-29 del tema 21
Read More “I1M2012: El TAD de los polinomios en Haskell (1)”

I1M2012: Comentario del 4º examen de la evaluacion continua

En la clase de hoy de Informática de 1º del Grado en Matemáticas se ha comentado el 4º examen de la evaluación continua.

Se ha resaltado los puntos de mayor dificultad:

  • Cómo buscar el plan a través de ejemplos (p.e. en el ejercicio 1 la clave estaba en la suma de los elementos del par),
  • Cómo trabajar con generadores ifinitos: si el primer generador es infinito, buscar cómo acotar el segundo,
  • Cómo definir funciones sobre tipos de datos recursivos: una ecuación por cada generador.
  • Cómo trabajar con listas de listas (p.e. en el ejercicio 4).

A continuación se muestra el examen junto con su solución:
Read More “I1M2012: Comentario del 4º examen de la evaluacion continua”