stringtranslate.com

Рецепты с цифрами

Numerical Recipes — общее название серии книг по алгоритмам и численному анализу Уильяма Х. Пресса , Сола А. Тьюкольского , Уильяма Т. Веттерлинга и Брайана П. Флэннери . В различных изданиях книги печатаются с 1986 года. Последнее издание было опубликовано в 2007 году.

Обзор

Книги Numerical Recipes охватывают ряд тем, которые включают как классический численный анализ ( интерполяция , интегрирование , линейная алгебра , дифференциальные уравнения и т. д.), обработку сигналов ( методы Фурье , фильтрация ), статистическую обработку данных и несколько тем в машинном обучении ( скрытая марковская модель , машины опорных векторов ). Стиль написания доступен и имеет неформальный тон. Акцент делается на понимании базовых основ методов, а не на уточнениях, которые могут потребоваться на практике для достижения оптимальной производительности и надежности. Немногие результаты доказаны с какой-либо степенью строгости, хотя идеи, лежащие в основе доказательств, часто излагаются в общих чертах, и приводятся ссылки. Важно, что практически все обсуждаемые методы также реализованы на языке программирования , с кодом, напечатанным в книге. Каждый вариант книги привязан к определенному языку.

По данным издательства Cambridge University Press , книги Numerical Recipes исторически являются самыми продаваемыми книгами по методам научного программирования. В последние годы книги Numerical Recipes цитировались в научной литературе более 3000 раз в год по данным ISI Web of Knowledge (например, 3962 раза в 2008 году). [1] А по состоянию на конец 2017 года книга имела более 44000 ссылок в Google Scholar . [2]

История

Первая публикация вышла в 1986 году под названием «Численные рецепты. Искусство научных вычислений», содержащим код как на Фортране, так и на Паскале; сопроводительная книга «Книга примеров числовых рецептов (Паскаль)» была впервые опубликована в 1985 году. (В предисловии к «Примерам» упоминается, что основная книга также была опубликована в 1985 году, но в официальном примечании в этой книге указан 1986 год.) Затем последовали дополнительные издания с кодом на Паскале, Бейсике и Си. «Численные рецепты» с самого начала заняли самоуверенную редакционную позицию, расходящуюся с общепринятой мудростью сообщества численного анализа:

Если в этой книге есть одна доминирующая тема, то это то, что практические методы численных вычислений могут быть одновременно эффективными, умными и — что важно — понятными. Альтернативная точка зрения, что эффективные вычислительные методы обязательно должны быть настолько загадочными и сложными, чтобы быть полезными только в форме «черного ящика», мы решительно отвергаем. [3]

Однако, как оказалось, 1980-е годы были плодородными для стороны «черного ящика», дав важные библиотеки, такие как BLAS и LAPACK , и интегрированные среды, такие как MATLAB и Mathematica . К началу 1990-х годов, когда были опубликованы версии Второго издания Numerical Recipes (с кодом на C, Fortran-77 и Fortran-90), стало ясно, что аудитория Numerical Recipes ни в коем случае не была большинством ученых, занимающихся вычислениями, а только той частью, которая находилась между более математическими численными аналитиками и более широким сообществом, использующим интегрированные среды. Версии Второго издания заняли стабильную роль в этой нишевой среде. [4]

К середине 2000-х годов практика научных вычислений была радикально изменена зрелым Интернетом и Вебом. Осознавая, что их книги Numerical Recipes все больше ценились больше за их пояснительный текст, чем за их примеры кода, авторы значительно расширили объем книги и существенно переписали большую часть текста. Они продолжали включать код, все еще напечатанный в книге, теперь на C++, для каждого обсуждаемого метода. [5] Третье издание также было выпущено в виде электронной книги, [6] в конечном итоге размещенной в Интернете бесплатно (с придирками) или по платной или институциональной подписке (с более быстрым, полным доступом и без придирок).

В 2015 году Numerical Recipes продала свое историческое двухбуквенное доменное имя nr.com [7] и стала numerical.recipes.

Прием

Содержание

Numerical Recipes — это единый том, охватывающий очень широкий спектр алгоритмов. К сожалению, этот формат сместил выбор алгоритмов в сторону более простых и коротких ранних алгоритмов, которые не были такими точными, эффективными или стабильными, как более поздние более сложные алгоритмы. [8] [9] В первом издании также были некоторые незначительные ошибки, которые были исправлены в более поздних изданиях; однако, по словам авторов, в течение многих лет они сталкивались в Интернете со слухами о том, что Numerical Recipes «полон ошибок» . Они приписывали это людям, использующим устаревшие версии кода, ошибкам в других частях кода и неправильному использованию процедур, для правильного использования которых требуется некоторое понимание. [10]

Однако опровержение не охватывает критику относительно отсутствия упоминаний ограничений кода, граничных условий и более современных алгоритмов, еще одной темы в компиляции комментариев Снайдера. [9] Проблема точности в функциях Бесселя сохранилась до третьего издания, по словам Павла Голобородько. [8]

Несмотря на критику со стороны численных аналитиков, инженеры и ученые в целом находят книгу удобно широкой по охвату. [9] Норман Грей соглашается в следующей цитате: [11]

Numerical Recipes [nr] не претендует на звание учебника по численному анализу, и подчеркивает, что его авторы — (астро-)физики и инженеры, а не аналитики, и поэтому разделяют мотивы и нетерпение целевой аудитории книги. Заявленная предпосылка авторов NR заключается в том, что вы так или иначе попадете в беду, если будете использовать числовые процедуры, которые вы не понимаете. Они пытаются дать вам достаточно математических подробностей, чтобы вы поняли процедуры, которые они представляют, достаточно глубоко, чтобы вы могли диагностировать проблемы, когда они возникают, и делать более сложный выбор замен, когда процедуры NR исчерпывают себя. Проблемы будут возникать, потому что [...]

Лицензия

Листинги кодов защищены авторским правом и лицензированы в коммерческих целях авторами Numerical Recipes . [12] Лицензия на использование кода предоставляется при покупке книги, но условия использования весьма ограничительны. [13] Например, программисты должны убедиться, что код NR не может быть извлечен из их готовых программ и использован — сложное требование с сомнительной реализуемостью. [14]

Однако в книге «Числовые рецепты» содержится следующее заявление относительно авторских прав на компьютерные программы:

Авторское право не защищает идеи, а только выражение этих идей в определенной форме. В случае компьютерной программы идеи состоят из методологии и алгоритма программы, включая необходимую последовательность шагов, принятых программистом. Выражение этих идей — исходный код программы  ... Если вы анализируете идеи, содержащиеся в программе, а затем выражаете эти идеи в своей собственной, совершенно иной реализации, то эта новая реализация программы принадлежит вам. [6]

Одной из первых причин создания Научной библиотеки GNU была необходимость в свободной библиотеке в качестве замены Численным рецептам . [15]

Стиль

Другая линия критики сосредоточена на стиле кодирования книг, который некоторым современным читателям кажется «фортрановским», хотя написан на современном объектно-ориентированном C++. [15] Авторы отстаивают свой очень лаконичный стиль кодирования как необходимый для формата книги из-за ограничений по объему и для удобства чтения. [4]

Названия в серии (частичный список)

Книги различаются по изданию (1-е, 2-е и 3-е) и по компьютерному языку, на котором дан код.

Книги издаются издательством Кембриджского университета .

Ссылки

  1. ^ Thomson Reuters , Web of Knowledge, Поиск цитируемых ссылок.
  2. ^ [1], Google Академия
  3. ^ Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P. (1986). "Предисловие". Numerical Recipes: The Art of Scientific Computing . New York: Cambridge University Press. p. xi. ISBN 0-521-30811-9.
  4. ^ ab Press, William H.; и Teukolsky, Saul A.; «Численные рецепты: есть ли у этой парадигмы будущее?», Computers in Physics, 11, 416 (1997). Препринт.
  5. ^ Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P. (2007). «Предисловие к третьему изданию». Numerical Recipes: The Art of Scientific Computing (3-е изд.). Нью-Йорк: Cambridge University Press. стр. xi. ISBN 978-0-521-88068-8.
  6. ^ ab Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P. (2007). Numerical Recipes: The Art of Scientific Computing (3-е изд.). Нью-Йорк: Cambridge University Press. ISBN 978-0-521-88068-8.
  7. ^ "Двухбуквенный домен NR.com продан: переименован в Numerical.Recipes". 14 октября 2015 г.
  8. ^ ab "Обзоры: числовые рецепты". www.quut.com . Получено 28 января 2019 г. .(обновлено для третьего издания; клон URL)
  9. ^ abc Van Snyder, W. (март 1991 г.). «Почему бы не использовать числовые рецепты?». stat.uchicago.edu . Получено 28 января 2019 г. .(Дата указана по примечанию редактора. Последнее обновление около сентября 1999 г.; более старый клон)
  10. ^ "Числовые рецепты вызывают тревожные слухи". numeric.recipes . Февраль 1999. Получено 28 января 2019 .(Указанная дата является первой датой archive.org для страницы на старом домене nr.com.)
  11. ^ Грей, Норман. «Числовые рецепты». Ресурсы теории и моделирования. Поваренная книга, www.astro.gla.ac.uk .
  12. ^ Веб-сайт числовых рецептов, Код числовых рецептов
  13. ^ Вайнер, Бенджамин. «Бойкот численным рецептам». Купите книгу, если хотите, учитесь по ней, но вместо этого используйте библиотеку вроде GNU Scientific Library. Особенно, если вы хотите, чтобы другие люди использовали вашу работу. Лицензия NR — это RIAA научного сообщества.
  14. ^ Хорнбек, Хейсн (28 января 2020 г.). Быстрая кубическая сплайн-интерполяция (технический отчет). Университет Калгари. arXiv : 2001.09253 .
  15. ^ ab Галасси, Марк; Тейлер, Джеймс; Гоф, Брайан. "GNU Scientific Library -- Design document". Операционная система GNU . GNU.org . Получено 5 января 2019 г. .

Внешние ссылки