stringtranslate.com

Численные рецепты

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

Обзор

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

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

История

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

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

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

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

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

Прием

Содержание

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

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

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

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

Лицензия

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

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

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

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

Стиль

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

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

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

Книги издаются издательством Cambridge University Press .

Рекомендации

  1. ^ Thomson Reuters , Сеть знаний, Поиск по цитируемым ссылкам.
  2. ^ [1], Академия Google.
  3. ^ Пресс, Уильям Х.; Теукольский, Саул А.; Веттерлинг, Уильям Т.; Фланнери, Брайан П. (1986). "Предисловие". Численные рецепты: искусство научных вычислений . Нью-Йорк: Издательство Кембриджского университета. п. xi. ISBN 0-521-30811-9.
  4. ^ ab Press, Уильям Х.; и Теукольский, Саул А.; «Численные рецепты: есть ли будущее у этой парадигмы?», Computers in Physics, 11, 416 (1997). Препринт.
  5. ^ Пресс, Уильям Х.; Теукольский, Саул А.; Веттерлинг, Уильям Т.; Фланнери, Брайан П. (2007). «Предисловие к третьему изданию». Численные рецепты: искусство научных вычислений (3-е изд.). Нью-Йорк: Издательство Кембриджского университета. п. xi. ISBN 978-0-521-88068-8.
  6. ^ ab Press, Уильям Х.; Теукольский, Саул А.; Веттерлинг, Уильям Т.; Фланнери, Брайан П. (2007). Численные рецепты: искусство научных вычислений (3-е изд.). Нью-Йорк: Издательство Кембриджского университета. ISBN 978-0-521-88068-8.
  7. ^ «Двухбуквенный домен NR.com продан: ребрендинг на Numerical.Recipes» . 14 октября 2015 г.
  8. ^ ab «Обзоры: числовые рецепты». www.quut.com . Проверено 28 января 2019 г.(обновлено для третьего издания; URL-адрес клона)
  9. ^ abc Ван Снайдер, В. (март 1991 г.). «Почему бы не использовать числовые рецепты?». stat.uchicago.edu . Проверено 28 января 2019 г.(Дата указана по примечанию редактора. Последнее обновление около сентября 1999 г.; старый клон)
  10. ^ «Численные рецепты, опровергающие слухи» . числовые.рецепты . Февраль 1999 года . Проверено 28 января 2019 г.(Указанная дата — это первая дата archive.org для страницы в старом домене nr.com.)
  11. ^ Грей, Норман. «Численные рецепты». Справочник ресурсов по теории и моделированию, www.astro.gla.ac.uk .
  12. ^ Веб-сайт числовых рецептов, Код числовых рецептов
  13. ^ Вайнер, Бенджамин. «Бойкот числовых рецептов». Купите книгу, если вам так хочется, учитесь на ней, но вместо этого используйте такую ​​библиотеку, как Научная библиотека GNU. Особенно, если вы когда-нибудь захотите, чтобы другие люди использовали вашу работу. Лицензия NR — это RIAA научного сообщества.
  14. Хорнбек, Хайсн (28 января 2020 г.). Быстрая интерполяция кубическими сплайнами (Технический отчет). Университет Калгари. arXiv : 2001.09253 .
  15. ^ аб Галасси, Марк; Тайлер, Джеймс; Гоф, Брайан. «Научная библиотека GNU — Проектный документ». Операционная система GNU . GNU.org . Проверено 5 января 2019 г.

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