stringtranslate.com

Recetas numéricas

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

Descripción general

Los libros de Recetas numéricas cubren una variedad de temas que incluyen tanto el análisis numérico clásico ( interpolación , integración , álgebra lineal , ecuaciones diferenciales , etc.), el procesamiento de señales ( métodos de Fourier , filtrado ), el 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. Pocos resultados 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 variante del libro está vinculada a un lenguaje específico.

Según la editorial Cambridge University Press , los libros de Numerical Recipes 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 Numerical Recipes 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). [1] Y a finales de 2017, el libro tenía más de 44000 citas en Google Scholar . [2]

Historia

La primera publicación fue en 1986 con el título “Numerical Recipes, The Art of Scientific Computing”, que contenía código en Fortran y Pascal; un libro complementario, “Numerical Recipes Example Book (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 en ese libro dice 1986). Siguieron ediciones complementarias con código en Pascal, BASIC y C. Numerical Recipes asumió, desde el principio, una posición editorial dogmática en desacuerdo con la sabiduría convencional de la comunidad de análisis numérico:

Si hay un tema dominante en este libro, es que los métodos prácticos de cálculo numérico pueden ser a la vez eficientes, inteligentes y —lo que es más importante— claros. Rechazamos firmemente el punto de vista alternativo, según el cual los métodos computacionales eficientes deben ser necesariamente tan arcanos y complejos que sólo sean útiles en forma de "caja negra". [3]

Sin embargo, como se vio después, los años 1980 fueron años fértiles para el lado de la "caja negra", produciendo bibliotecas importantes como BLAS y LAPACK , y entornos integrados como MATLAB y Mathematica . A principios de los años 1990, cuando se publicaron las versiones de segunda edición de Numerical Recipes (con código en C, Fortran-77 y Fortran-90), estaba claro que el grupo de interés de Numerical Recipes no era de ninguna manera la mayoría de los científicos que hacían cálculos, sino solo esa porción que vivía entre los analistas numéricos más matemáticos y la comunidad más grande que usaba entornos integrados. Las versiones de segunda edición ocuparon un papel estable en este entorno de nicho. [4]

A mediados de la década de 2000, la práctica de la computación científica había sido radicalmente alterada por la madurez de Internet y la Web. Reconociendo que sus libros de Recetas numéricas eran cada vez más valorados 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. [5] La tercera edición también se publicó como libro electrónico, [6] finalmente se puso a disposición en la Web de forma gratuita (con recordatorios) o mediante suscripción paga o institucional (con acceso más rápido, completo y sin recordatorios).

En 2015, Numerical Recipes vendió su histórico nombre de dominio de dos letras nr.com [7] y se convirtió numerical.recipesen .

Recepción

Contenido

Numerical Recipes es un único volumen que cubre una amplia gama de algoritmos. Desafortunadamente, ese formato inclinó 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. [8] [9] La primera edición también tenía algunos errores menores, que se solucionaron en ediciones posteriores; sin embargo, según los autores, durante años se encontraron con rumores en Internet de que Numerical Recipes estaba "lleno de errores" . Lo atribuyeron a que la gente usaba 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. [10]

Sin embargo, la refutación no cubre las críticas sobre la falta de menciones a las limitaciones del código, las condiciones de contorno y los algoritmos más modernos, otro tema en la compilación de comentarios de Snyder. [9] Un problema de precisión en las funciones de Bessel ha persistido hasta la tercera edición según Pavel Holoborodko. [8]

A pesar de las críticas de los analistas numéricos, los ingenieros y los científicos en general consideran que el libro tiene un alcance convenientemente amplio. [9] Norman Gray coincide con la siguiente cita: [11]

Numerical Recipes [nr] no pretende ser un libro de texto de análisis numérico, y hace hincapié en que sus autores son (astro)físicos e ingenieros en lugar de analistas, y por lo tanto comparten las motivaciones y la impaciencia de la audiencia a la que se dirige el libro. La premisa declarada de los autores de NR es que, de una forma u otra, acabarás en problemas si utilizas rutinas numéricas que no entiendes. Intentan darte suficientes detalles matemáticos para que entiendas las rutinas que presentan, con la suficiente profundidad para que puedas diagnosticar los problemas cuando se produzcan y tomar decisiones más sofisticadas sobre los reemplazos cuando las rutinas NR se queden sin fuerza. Los problemas ocurrirán porque [...]

Licencia

Los códigos que se enumeran están protegidos por derechos de autor y licenciados comercialmente por los autores de Numerical Recipes . [12] Con la compra de un libro se otorga una licencia para usar el código, pero los términos de uso son altamente restrictivos. [13] 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 de cumplir con una dudosa aplicabilidad. [14]

Sin embargo, Numerical Recipes incluye la siguiente declaración sobre los derechos de autor de los programas informáticos:

Los derechos de autor no protegen las ideas, sino sólo la expresión de esas ideas en una forma particular. En el caso de un programa de ordenador, las ideas consisten en la metodología y el algoritmo del programa, incluida la secuencia necesaria de pasos adoptada 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 las expresas en una implementación propia completamente diferente, entonces esa nueva implementación del programa te pertenece. [6]

Una de las primeras motivaciones de la Biblioteca Científica GNU fue la necesidad de una biblioteca libre que sustituyera a las Recetas Numéricas . [15]

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 "Fortran-ish", aunque escritos en C++ contemporáneo y orientado a objetos. [15] Los autores han defendido su estilo de codificación muy conciso como necesario para el formato del libro debido a las limitaciones de espacio y para facilitar la lectura. [4]

Títulos de la serie (lista parcial)

Los libros se diferencian por la edición (1ª, 2ª y 3ª) y por el lenguaje informático en el que está proporcionado el código.

Los libros son publicados por Cambridge University Press .

Referencias

  1. ^ Thomson Reuters , Web of Knowledge, Búsqueda de referencias citadas.
  2. ^ [1], Google Académico
  3. ^ Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P. (1986). "Prefacio". Recetas numéricas: el arte de la computación científica . Nueva York: Cambridge University Press. p. xi. ISBN 0-521-30811-9.
  4. ^ ab Press, William H.; y Teukolsky, Saul A.; "Recetas numéricas: ¿tiene futuro este paradigma?", Computers in Physics, 11, 416 (1997). Preimpresión.
  5. ^ Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P. (2007). "Prefacio a la tercera edición". Recetas numéricas: el arte de la computación científica (3.ª ed.). Nueva York: Cambridge University Press. pág. xi. ISBN 978-0-521-88068-8.
  6. ^ ab Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P. (2007). Recetas numéricas: el arte de la computación científica (3.ª ed.). Nueva York: Cambridge University Press. ISBN 978-0-521-88068-8.
  7. ^ "El dominio de dos letras NR.com se vende: cambia su nombre a Numerical.Recipes". 14 de octubre de 2015.
  8. ^ ab "Reseñas: Recetas numéricas". www.quut.com . Consultado el 28 de enero de 2019 .(actualizado para la tercera edición; URL clonada)
  9. ^ abc Van Snyder, W. (marzo de 1991). "¿Por qué no utilizar recetas numéricas?". stat.uchicago.edu . Consultado el 28 de enero de 2019 .(Fecha estimada por el comentario del editor. Última actualización alrededor de septiembre de 1999; clon más antiguo)
  10. ^ "Recetas numéricas que generan rumores preocupantes". numerical.recipes . Febrero de 1999 . Consultado el 28 de enero de 2019 .(La fecha indicada es la primera fecha de archive.org para la página en el antiguo dominio nr.com).
  11. ^ Gray, Norman. "Recetas numéricas". Libro de recetas de recursos de teoría y modelado, www.astro.gla.ac.uk .
  12. ^ Sitio web de recetas numéricas, Código de recetas numéricas
  13. ^ Weiner, Benjamin. "Boicot a las recetas numéricas". Compra el libro si te apetece, aprende de él, pero utiliza una biblioteca como la Biblioteca Científica GNU. Especialmente si alguna vez quieres que otras personas utilicen tu trabajo. La licencia NR es la RIAA de la comunidad científica.
  14. ^ Hornbeck, Haysn (28 de enero de 2020). Interpolación rápida de splines cúbicos (informe técnico). Universidad de Calgary. arXiv : 2001.09253 .
  15. ^ ab Galassi, Mark; Theiler, James; Gough, Brian. «Biblioteca científica GNU: documento de diseño». Sistema operativo GNU . GNU.org . Consultado el 5 de enero de 2019 .

Enlaces externos