Numerical Recipes
# Numerical Recipes

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.

## Descripción

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).

## Historia

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:

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.

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. La tercera edición también fue lanzado como un libro electrónico, 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

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. 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 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.

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.

## Títulos de la serie (lista parcial)

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

* Numerical Recipes. The Art of Scientific Computing, 3rd Edition, 2007, ISBN 0-521-88068-8. (C++ code)
* Numerical Recipes in C. The Art of Scientific Computing, 2nd Edition, 1992, ISBN 0-521-43108-5.
* Numerical Recipes in Fortran 77. The Art of Scientific Computing, 2nd Edition, 1992, ISBN 0-521-43064-X.
* Numerical Recipes in Fortran 90. The Art of Parallel Scientific Computing, 2nd Edition, 1996, ISBN 0-521-57439-0.
* Numerical Recipes in Pascal. The Art of Scientific Computing, 1st Edition, 1989, ISBN 0-521-37516-9.

Los libros son publicados por Cambridge University Press.

