Recetas Numéricas
Recetas numéricas es el título genérico de una serie de libros sobre algoritmos y análisis numérico escritos por William H. Press, Saul A. Teukolsky, William T. Vetterling y Brian. P. Flannery. En varias ediciones, los libros se han impreso desde 1986. La edición más reciente se publicó en 2007.
Descripción general
Los libros Recetas numéricas cubren una variedad de temas que incluyen 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 datos y algunos temas de aprendizaje automático (modelo oculto de Markov, máquinas de vectores de soporte). El estilo de escritura es accesible y tiene un tono informal. El énfasis está en comprender los conceptos básicos subyacentes de las técnicas, no en los refinamientos que, en la práctica, pueden ser necesarios para lograr un rendimiento y una confiabilidad óptimos. Son pocos los resultados que se prueban con algún grado de rigor, aunque las ideas detrás de las pruebas a menudo se esbozan y se dan referencias. Es importante destacar que prácticamente todos los métodos que se analizan también se implementan en un lenguaje de programación, con el código impreso en el libro. Cada versión está adaptada a un idioma específico.
Según el editor Cambridge University Press, los libros Recetas numéricas son históricamente los libros más vendidos de todos los tiempos sobre métodos de programación científica. En los últimos años, los libros de Recetas Numéricas han sido citados en la literatura científica más de 3000 veces al año según ISI Web of Knowledge (por ejemplo, 3962 veces en el año 2008). Y a finales de 2017, el libro tenía más de 44.000 citas en Google Scholar.
Historia
La primera publicación fue en 1986 con el título “Recetas numéricas, el arte de la computación científica”, que contenía código tanto en Fortran como en Pascal; un libro adjunto, “Libro de ejemplos de recetas numéricas (Pascal)”, se publicó por primera vez en 1985. (Una nota de prefacio en “Ejemplos” menciona que el libro principal también se publicó en 1985, pero la nota oficial de ese libro dice 1986.) Siguieron ediciones complementarias con código en Pascal, BASIC y C. Numerical Recipes adoptó, desde el principio, una posición editorial obstinada que contrastaba con la sabiduría convencional de la comunidad de análisis numérico:
Si hay un único tema dominante en este libro, es que los métodos prácticos de computación numérica pueden ser simultáneamente eficientes, inteligentes e importantes, claros. El punto de vista alternativo, que los métodos computacionales eficientes deben ser necesariamente tan arcanos y complejos como ser útiles sólo en forma de "caja negra", rechazamos firmemente.
Sin embargo, resultó que los años 80 fueron años fértiles para la "caja negra" lado, produciendo bibliotecas importantes como BLAS y LAPACK, y entornos integrados como MATLAB y Mathematica. A principios de la década de 1990, cuando se publicaron las versiones de la segunda edición de Numerical Recipes (con código en C, Fortran-77 y Fortran-90), estaba claro que el electorado de Numerical Recipes no era de ninguna manera la mayoría de los científicos que hacían cálculos, sino sólo esa porción que vivía entre los analistas numéricos más matemáticos y la comunidad más amplia que utilizaba entornos integrados. Las versiones de la Segunda Edición ocuparon un papel estable en este entorno de nicho.
A mediados de la década de 2000, la práctica de la informática científica había sido alterada radicalmente por la Internet y la Web maduras. Al reconocer que sus libros Recetas numéricas eran cada vez más valorados más por su texto explicativo que por sus ejemplos de código, los autores ampliaron significativamente el alcance del libro y reescribieron significativamente una gran parte del texto. Continuaron incluyendo código, todavía impreso en el libro, ahora en C++, para cada método discutido. La tercera edición también se lanzó como libro electrónico y finalmente estuvo disponible en la Web de forma gratuita (con molestias) o mediante suscripción paga o institucional (con acceso completo más rápido y sin molestias).
En 2015, Numerical Recipes vendió su histórico nombre de dominio de dos letras nr.com y en su lugar se convirtió en numerical.recipes.
Recepción
Contenido
Numerical Recipes es un volumen único que cubre una gama muy amplia de algoritmos. Desafortunadamente, ese formato sesgó la elección de algoritmos hacia algoritmos iniciales más simples y cortos que no eran tan precisos, eficientes o estables como algoritmos posteriores más complejos. La primera edición también tuvo algunos errores menores, que se solucionaron en ediciones posteriores; sin embargo, según los autores, durante años encontraron en Internet rumores de que Numerical Recipes está "lleno de errores". Lo atribuyeron a personas que utilizan versiones obsoletas del código, errores en otras partes del código y mal uso de rutinas que requieren cierta comprensión para usarlas correctamente.
Sin embargo, la refutación no cubre las críticas relacionadas con la falta de menciones a las limitaciones del código, las condiciones de contorno y los algoritmos más modernos, otro tema en la recopilación de comentarios de Snyder. Según Pavel Holoborodko, el problema de precisión en las funciones de Bessel persistió hasta la tercera edición.
A pesar de las críticas de los analistas numéricos, los ingenieros y científicos generalmente consideran que el alcance del libro es convenientemente amplio. Norman Gray coincide en la siguiente cita:
Numerical Recipes [nr] no pretende ser un manual de análisis numérico, y hace un punto de notar que sus autores son (astro-) físicos e ingenieros en lugar de analistas, y así compartir las motivaciones e impaciencia del público previsto del libro. La premisa declarada de los autores de NR es que llegarás a la pena de una manera u otra si usas rutinas numéricas que no entiendes. Intentan darle suficiente detalle matemático que usted entiende las rutinas que presentan, con suficiente profundidad que usted puede diagnosticar problemas cuando ocurren, y tomar decisiones más sofisticadas sobre los reemplazos cuando las rutinas NR se agotan. Los problemas ocurrirán porque [...]
Licencia
Los listados de códigos tienen derechos de autor y licencia comercial de los autores de Numerical Recipes. Se otorga una licencia para usar el código con la compra de un libro, pero los términos de uso son muy restrictivos. Por ejemplo, los programadores deben asegurarse de que el código NR no pueda extraerse de sus programas terminados y usarse, un requisito difícil y de dudosa aplicabilidad.
Sin embargo, recetas numéricas incluye la siguiente declaración con respecto a los derechos de autor en los programas de computadora:
El derecho de autor no protege las ideas, sino sólo la expresión de esas ideas en una forma particular. En el caso de un programa informático, las ideas consisten en la metodología y algoritmo del programa, incluyendo la secuencia necesaria de pasos adoptados por el programador. La expresión de esas ideas es el código fuente del programa... Si analizas las ideas contenidas en un programa, y luego expresas esas ideas en tu propia implementación completamente diferente, entonces esa nueva implementación del programa te pertenece.
Una de las primeras motivaciones para la Biblioteca Científica GNU fue que se necesitaba una biblioteca gratuita como sustituto de las Recetas Numéricas.
Estilo
Otra línea de crítica se centra en el estilo de codificación de los libros, que a algunos lectores modernos les parece "tipo Fortran", aunque están escritos en C++ contemporáneo y orientado a objetos. Los autores han defendido su estilo de codificación muy conciso como necesario para el formato del libro debido a limitaciones de espacio y para facilitar la lectura.
Títulos de la serie (lista parcial)
Los libros difieren según la edición (primera, segunda y tercera) y según el lenguaje informático en el que se proporciona el código.
- Recetas numéricas. El arte de la computación científica, primera edición, 1986, ISBN 0-521-30811-9. (Fortran and Pascal)
- Recetas numéricas en C. El arte de la computación científica, 1a edición, 1988, ISBN 0-521-35465-X.
- Recetas Numéricas en Pascal. El arte de la computación científica, primera edición1989, ISBN 0-521-37516-9.
- Recetas Numéricas en Fortran. El arte de la computación científica, primera edición1989, ISBN 0-521-38330-7.
- Recetas numéricas en BASIC. El arte de la computación científica, primera edición, 1991, ISBN 0-521-40689-7. (edición complementaria)
- Recetas numéricas en Fortran 77. El arte de la computación científica, 2a edición, 1992, ISBN 0-521-43064-X.
- Recetas numéricas en C. El arte de la computación científica, 2a edición, 1992, ISBN 0-521-43108-5.
- Recetas numéricas en Fortran 90. El arte de la computación científica paralela, segunda edición, 1996, ISBN 0-521-57439-0.
- Recetas numéricas en C++. El arte de la computación científica, segunda edición, 2002, ISBN 0-521-75033-4.
- Recetas numéricas. El arte de la computación científica, tercera edición, 2007, ISBN 0-521-88068-8. (C++)
Los libros son publicados por Cambridge University Press.
Contenido relacionado
Conjunto vacío
Precisión y exactitud
Historia de la lógica