Численные рецепты
Автор | Уильям Х. Пресс , Сол А. Теукольски , Уильям Т. Веттерлинг и Брайан П. Флэннери |
---|---|
Язык | Английский |
Дисциплина | Численный анализ |
Издатель | Издательство Кембриджского университета |
Веб-сайт | числовой |
Численные рецепты — это общее название серии книг по алгоритмам и численному анализу Уильяма Х. Пресса , Сола А. Теукольски , Уильяма Т. Веттерлинга и Брайана П. Фланнери . В различных изданиях книги издаются с 1986 года. Последнее издание вышло в 2007 году.
Обзор
[ редактировать ]Книги «Числовые рецепты» охватывают ряд тем, которые включают в себя как классический численный анализ ( интерполяцию , интегрирование , линейную алгебру , дифференциальные уравнения и т. д.), обработку сигналов ( методы Фурье , фильтрация ), статистическую обработку данных, а также несколько тем в машинное обучение ( скрытая модель Маркова , машины опорных векторов ). Стиль письма доступен и имеет неформальный тон. Акцент делается на понимании основных основ методов, а не на усовершенствованиях, которые на практике могут потребоваться для достижения оптимальной производительности и надежности. Лишь немногие результаты доказаны с какой-либо степенью строгости, хотя идеи, лежащие в основе доказательств, часто обрисовываются и даются ссылки. Важно отметить, что практически все обсуждаемые методы также реализованы на языке программирования с кодом, напечатанным в книге. Каждый вариант книги привязан к определенному языку.
По словам издателя Cambridge University Press , книги «Числовые рецепты» исторически являются самыми продаваемыми книгами по методам научного программирования за все время. В последние годы книги числовых рецептов цитировались в научной литературе более 3000 раз в год, согласно данным ISI Web of Knowledge (например, 3962 раза в 2008 году). [1] А по состоянию на конец 2017 года книга имела более 44 000 цитирований в Google Scholar . [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-е) и компьютерным языком, на котором дан код.
- Численные рецепты. Искусство научных вычислений, 1-е издание , 1986 г., ISBN 0-521-30811-9 . ( Фортран и Паскаль )
- рецепты в C. Численные Искусство научных вычислений, 1-е издание , 1988 г., ISBN 0-521-35465-X .
- Численные рецепты в Паскале . Искусство научных вычислений, 1-е издание , 1989 г., ISBN 0-521-37516-9 .
- Числовые рецепты на Фортране . Искусство научных вычислений, 1-е издание , 1989 г., ISBN 0-521-38330-7 .
- Числовые рецепты на языке BASIC . Искусство научных вычислений, 1-е издание , 1991 г., ISBN 0-521-40689-7 . (дополнительное издание)
- Числовые рецепты на Фортране 77 . Искусство научных вычислений, 2-е издание , 1992 г., ISBN 0-521-43064-X .
- рецепты в C. Численные Искусство научных вычислений, 2-е издание , 1992 г., ISBN 0-521-43108-5 .
- Численные рецепты на Фортране 90 . Искусство параллельных научных вычислений, 2-е издание , 1996 г., ISBN 0-521-57439-0 .
- Числовые рецепты на C++ . Искусство научных вычислений, 2-е издание , 2002 г., ISBN 0-521-75033-4 .
- Численные рецепты. Искусство научных вычислений, 3-е издание , 2007 г., ISBN 0-521-88068-8 . ( С++ ) код
Книги издаются издательством Cambridge University Press .
Ссылки
[ редактировать ]- ^ Thomson Reuters , Сеть знаний , Поиск по цитируемым ссылкам.
- ^ [1] , Академия Google
- ^ Пресс, Уильям Х.; Теукольский, Саул А.; Веттерлинг, Уильям Т.; Фланнери, Брайан П. (1986). "Предисловие". Численные рецепты: искусство научных вычислений . Нью-Йорк: Издательство Кембриджского университета. п. xi. ISBN 0-521-30811-9 .
- ^ Jump up to: Перейти обратно: а б Пресс, Уильям Х.; и Теукольский, Саул А.; «Численные рецепты: есть ли будущее у этой парадигмы?», Computers in Physics, 11, 416 (1997). Препринт.
- ^ Пресс, Уильям Х.; Теукольский, Саул А.; Веттерлинг, Уильям Т.; Фланнери, Брайан П. (2007). «Предисловие к третьему изданию». Численные рецепты: искусство научных вычислений (3-е изд.). Нью-Йорк: Издательство Кембриджского университета. п. xi. ISBN 978-0-521-88068-8 .
- ^ Jump up to: Перейти обратно: а б Пресс, Уильям Х.; Теукольский, Саул А.; Веттерлинг, Уильям Т.; Фланнери, Брайан П. (2007). Численные рецепты: искусство научных вычислений (3-е изд.). Нью-Йорк: Издательство Кембриджского университета. ISBN 978-0-521-88068-8 .
- ^ «Двухбуквенный домен NR.com продан: ребрендинг на Numerical.Recipes» . 14 октября 2015 г.
- ^ Jump up to: Перейти обратно: а б «Обзоры: Численные рецепты» . www.quut.com . Проверено 28 января 2019 г. (обновлено для третьего издания; URL-адрес клона )
- ^ Jump up to: Перейти обратно: а б с Ван Снайдер, В. (март 1991 г.). «Почему бы не использовать числовые рецепты?» . stat.uchicago.edu . Проверено 28 января 2019 г. (Дата указана по примечанию редактора. Последнее обновление около сентября 1999 г.; более старый клон )
- ^ «Численные рецепты, опровергающие тревожные слухи» . числовые.рецепты . Февраль 1999 года . Проверено 28 января 2019 г. (Указанная дата — это первая дата archive.org для страницы в старом домене nr.com.)
- ^ Грей, Норман. «Численные рецепты» . Справочник ресурсов по теории и моделированию, www.astro.gla.ac.uk .
- ^ Веб-сайт числовых рецептов, Код числовых рецептов
- ^ Вайнер, Бенджамин. «Бойкот числовых рецептов» .
Купите книгу, если вам так хочется, учитесь на ней, но вместо этого используйте такую библиотеку, как Научная библиотека GNU. Особенно, если вы когда-нибудь захотите, чтобы другие люди использовали вашу работу. Лицензия NR — это RIAA научного сообщества.
- ^ Хорнбек, Хайсн (28 января 2020 г.). Быстрая интерполяция кубическими сплайнами (Технический отчет). Университет Калгари. arXiv : 2001.09253 .
- ^ Jump up to: Перейти обратно: а б Галасси, Марк; Тайлер, Джеймс; Гоф, Брайан. «Научная библиотека GNU — Проектный документ» . Операционная система GNU . GNU.org . Проверено 5 января 2019 г.
Внешние ссылки
[ редактировать ]- Официальный сайт
- Текущее электронное издание Numerical Recipes (ограниченное количество бесплатных просмотров страниц).
- Числовые рецепты в Google Книгах
- Старые версии числовых рецептов доступны в электронном виде (ссылки на версии C, Fortran 77 и Fortran 90 в различных форматах, а также другие размещенные книги)
- В. Ван Снайдер, Почему бы не использовать числовые рецепты? , полное четырехстраничное зеркало Лек-Хенг Лима (включая обсуждение альтернатив)