Numerical Recipes

libro de William H. Press


Numerical Recipes es el título genérico de una serie de libros sobre algoritmos y análisis numérico de William H. Press, Saúl A. Teukolsky, William T. Vetterling y Brian P. Flannery. Se han impreso varias ediciones desde 1986. La edición más reciente (2015) se publicó en 2007.

de William H. Press, Saul A. Teukolsky, William T. Vetterling y Brian P. Flannery
Cover of the third (C++) edition
Cubierta de la tercera edición
Título original «Numerical Recipes: The Art of Scientific Computing»
Idioma original Inglés
Género Análisis numérico

Descripción

editar

Los libros Numerical Recipes versan sobre una variedad de temas que incluyen tanto análisis numérico clásico (interpolación, integración, álgebra lineal, ecuaciones diferenciales, etc.), procesamiento de señales métodos de Fourier, filtrado), tratamiento estadístico de los datos, y algunos temas de aprendizaje automático (modelos oculto de Markov, máquinas de vectores de soporte). El estilo de escritura es accesible y tiene un tono informal. El énfasis está en la comprensión de los fundamentos subyacentes de las técnicas, no en los refinamientos que pueden, en la práctica, se necesitarían para lograr un rendimiento y fiabilidad óptimos. Pocos resultados se probaron con cualquier grado de rigor, aunque las ideas detrás de las pruebas a menudo se esbozan y se dan referencias.

Prácticamente todos los métodos que se estudian también están implementados en un lenguaje de programación, con el código impreso en el libro. El código esta también comercializado en forma electrónica en diferentes lenguajes de programación.

De acuerdo con el editor, Cambridge University Press, los libros Numerical Recipes son históricamente los de mayor venta sobre métodos de programación científicos. En los últimos años, los libros Numerical Recipes han sido citados en la literatura científica más de 3000 veces por año, según el ISI Web of Knowledge (por ejemplo, 3962 veces en el año 2008).[1]

Historia

editar

Publicado por primera vez en 1986 con el título, "Numerical Recipes, The Art of Scientific Computing", que contiene el código tanto en Fortran como Pascal; un libro de acompañamiento, "Numerical Recipes Ejemplo libro (Pascal) se publicó por primera vez en 1985. (Una nota prefacio de" Ejemplos "menciona que el libro principal también se publicó en 1985, pero la nota oficial en ese libro dice 1986.) Ediciones Suplementarios seguido con el código en Pascal, BASIC y C. Numerical Recipes tomaron, desde el principio, una posición editorial obstinado en desacuerdo con la sabiduría convencional de la comunidad de análisis numérico:

Si hay un solo tema dominante en este libro, es que los métodos prácticos de cálculo numérico pueden ser a la vez eficiente, inteligente y - importante - claro. El punto de vista alternativo, que los métodos computacionales eficientes necesariamente debe ser tan arcana y complejo como para ser útil sólo en forma de "recuadro negro", nos Rechazamos firmemente.[2]

Sin embargo, como se vio después, la década de 1980 fueron años fértiles para el lado de "recuadro negro", dando bibliotecas importantes como BLAS y LAPACK y entornos integrados como MATLAB y Mathematica. A principios de la década de 1990, cuando se publicó la segunda edición de Numerical Recipes (con código en C, Fortran-77 y Fortran-90), estaba claro que el distrito electoral para Numerical Recipes fue de ninguna manera la mayoría de los científicos que hacen el cálculo, pero solo esa rebanada que vivió entre los analistas numéricos más matemáticas y la comunidad en general el uso de entornos integrados. Las versiones Segunda edición ocuparon un papel estable en este ambiente del lugar.[3]

A mediados de la década de 2000, la práctica de la computación científica había sido alterada radicalmente por Internet. Reconociendo que sus libros Numerical Recipes se valoran cada vez más por su texto explicativo que por sus ejemplos de código, los autores ampliaron considerablemente el alcance del libro, y reescribieron significativamente una gran parte del texto. Continuaron incluir código, impreso en el libro, ahora en C ++, para cada método discutido.[4]​ La tercera edición también fue lanzado como un libro electrónico,[5]​ finalmente puesto a disposición en la web de forma gratuita (con la vistas limitada página) o mediante pago o suscripción institucional (con vistas páginas ilimitadas).

Críticas

editar

Teniendo en cuenta el estilo de escritura de los libros, no es de extrañar que eran (y siguen siendo hasta cierto punto) controvertidos dentro de la comunidad de análisis numérico. Las primeras críticas se han centrado en la "supuesta falta de fiabilidad" ( de hecho, la primera edición contenía algunos errores), la exclusión de ciertos algoritmos, y la afirmación de los autores, no siempre correcta, que sus programas son tan eficientes y fiables que las bibliotecas de tipos "recuadro negro", como bibliotecas NAG o IMSL. Aunque no mencionó Numerical Recipes saber, Whaley et al.[6]​ muestran que LAPACK con una biblioteca BLAS altamente optimizado puede ser un orden de magnitud más rápido que una rutina directamente inspirado por Numerical Recipes. Otro ejemplo, Frigo y Johnson[7]​ muestren que el código de la transformada rápida de Fourier (FFT) de Numerical Recipes es entre 5 a 40 veces más lento que las arquitecturas altamente optimizados de programas digitales modernos.

Una segunda crítica es que, a pesar de que el código está impreso en los libros, los autores de obras tienen derecho sobre ellos, y no es posible redistribuir los códigos fuente de Numerical Recipes. El código comercializado no es compatible con las licencias GPL o similar, a diferencia, por ejemplo, a la GNU Scientific Library. Sin embargo, es posible redistribuir un programa compilado para uso no comercial.[8]

Una tercera crítica se centra en el estilo de codificación utilizado en los libros, algunas lectores modernos encontraron demasiado influenciado por el estilo del "fortran" aun cuando el libro emplea un lenguaje más orientado a objetos. Sin embargo, los autores defienden su estilo de codificación muy conciso es necesario por el formato de los libros, que requiere un estilo de codificación conciso debido a las limitaciones de espacio y facilidad de lectura.[3]

Títulos de la serie (lista parcial)

editar

Los libros difieren en edición (primera, segunda y tercera) y por el lenguaje de programación en el que aparece el código.

Los libros son publicados por Cambridge University Press.

Referencias

editar
  1. Thomson Reuters, Web of Knowledge, Cited Reference Search.
  2. Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P. (1986). «Preface». Numerical Recipes: The Art of Scientific Computing. New York: Cambridge University Press. p. xi. ISBN 0-521-30811-9. 
  3. a b Press, William H.; and Teukolsky, Saul A.; "Numerical Recipes: Does This Paradigm Have a Future?," Computers in Physics, 11, 416 (1997). Preprint. Archivado el 27 de marzo de 2012 en Wayback Machine.
  4. Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P. (2007). «Preface to the Third Edition». Numerical Recipes: The Art of Scientific Computing (3rd edición). New York: Cambridge University Press. p. xi. ISBN 978-0-521-88068-8. 
  5. Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P. (2007). Numerical Recipes: The Art of Scientific Computing (3rd edición). New York: Cambridge University Press. ISBN 978-0-521-88068-8. Archivado desde el original el 11 de agosto de 2011. Consultado el 21 de septiembre de 2015. 
  6. R. Clint Whaley, Antoine Petitet et Jack J. Dongarra, « Automated empirical optimization of software and the ATLAS project », Parallel Computing 27, 3-35 (2001).
  7. S. G. Johnson and M. Frigo, « Implementing FFTs in practice » in Fast Fourier Transforms (C. S. Burrus, ed.), ch. 11, Rice University, Houston TX: Connexions, septembre 2008.
  8. Numerical Recipes Web site, Numerical Recipes Code Archivado el 21 de septiembre de 2015 en Wayback Machine.