He escrito un artículo, que incluye un apéndice en el que se explica cómo obtener pruebas numéricas del resultado del artículo. Ahora el cálculo funciona esencialmente como sigue:
- Crea una matriz tridiagonal grande.
- Calcula sus valores propios.
- Calcula la diferencia de los valores propios consecutivos y la devuelve.
La implementación de un algoritmo de este tipo es bastante sencilla, pero para poder analizar matrices grandes, empecé a utilizar algoritmos de un paquete llamado LAPACK que resultó ser más rápido que los algoritmos normales de Matlab. (No soy especialista, así que no estoy muy seguro de lo que ocurre).
Tengo curiosidad por saber si se debe proporcionar el código fuente de un cálculo de este tipo y, en caso afirmativo, de qué forma. Se me ocurren las siguientes opciones:
- Pseudocódigo (como arriba)
- Matlab simplificado, que funciona con cualquier instalación de matlab, pero es demasiado lento para hacer realmente los cálculos.
- El código real, que la mayoría de la gente no podrá hacer funcionar sin cierto esfuerzo.
También tengo curiosidad por saber si se debería incluir algún tipo de código fuente en el documento y, en caso afirmativo, de qué forma. O qué ha hecho la gente en tal caso...
El código simplificado está disponible en: http://math.rice.edu/~hk7/ftp/matlab_code/SkewSpecDense.m
No he puesto el código real en línea, porque requiere paquetes externos, y no estoy seguro de lo fácil que es instalarlos...