Кіріспе
Сандық рецепттер – Уильям Х. Пресс, Саул А. Теуколский, Уильям Т. Веттерлинг және Брайан П. Фланнеридің алгоритмдер және сандық талдау саласындағы кітаптар сериясының жалпы атауы. Кітаптар әртүрлі басылымдармен 1986 жылдан бері жарық көріп келеді. Ең соңғы басылымы 2007 жылы шықты.
Numerical Recipes is the generic title of a series of books on algorithms and numerical analysis by William H. Press, Saul A. Teukolsky, William T. Vetterling and Brian P. Flannery. In various editions, the books have been in print since 1986. The most recent edition was published in 2007.
Шолу
Сандық рецепттер кітаптары классикалық сандық талдау (интерполяция, интеграция, сызықтық алгебра, дифференциалдық теңдеулер және т.б.), сигналдарды өңдеу (Фурье әдістері, сүзгілеу), деректерді статистикалық өңдеу және машиналық оқытудағы бірнеше тақырыптарды қамтиды (жасырын Марков моделі, қолдаушы векторлық машиналар). Жазу стилі оңай түсінілетін және бейресми. Техникалардың негізгі принциптерін түсінуге басымдық беріледі, емес оңтайлы өнімділікке және сенімділікке қол жеткізу үшін қажет болуы мүмкін жақсартуларға. Нәтижелердің көпшілігі қатаң түрде дәлелденбеген, бірақ дәлелдердің негізгі идеялары көбінесе сипатталады және сілтемелер келтіріледі. Ең маңыздысы, талқыланған барлық әдістер бағдарламалау тілінде іске асырылған, ал код кітапта жарияланады. Әрбір нұсқа нақты бір тілге сәйкес келеді. Cambridge University Press баспасының мәліметінше, "Сандық рецепттер" кітаптары ғылыми бағдарламалау әдістері бойынша тарихи тұрғыдан ең көп сатылған кітаптар болып табылады. Соңғы жылдары, "Сандық рецепттер" кітаптарына ISI Web of Knowledge деректері бойынша ғылыми әдебиетте жылына 3000-нан астам сілтеме жасалған (мысалы, 2008 жылы 3962 рет). 2017 жылдың соңына қарай кітапқа Google Scholar-да 44000-нан астам сілтеме жасалған.
Тарих
Бірінші басылым 1986 жылы «Сандық рецепттер, ғылыми есептеу өнері» деген атпен жарық көрді, онда Фортран және Паскаль тілдерінде кодтар келтірілген; ал 1985 жылы «Сандық рецепттер үлгі кітабы (Паскаль)» атты қосымша кітап жарық көрді. («Мысалдар» кітабының алғы сөзінде негізгі кітаптың да 1985 жылы жарық көргені айтылған, бірақ кітаптың өзіндегі ресми мәліметте 1986 жыл деп көрсетілген.) Паскаль, BASIC және C тілдерінде кодтары бар қосымша басылымдар шықты. «Сандық рецепттер» басынан бастап-ақ сандық талдау қауымдастығының қалыпты көзқарасына қарсы тұратын белгілі бір редакциялық ұстанымды қабылдады:
Дегенмен, 1980-ші жылдар «қара қорап» тәсілі үшін өнімді жылдар болды, нәтижесінде BLAS және LAPACK сияқты маңызды кітапханалар, сондай-ақ MATLAB және Mathematica сияқты интеграцияланған орталар пайда болды. 1990-шы жылдардың басында «Сандық рецепттердің» екінші басылымы (C, Fortran 77 және Fortran 90 тілдерінде кодтарымен) жарық көрген кезде, «Сандық рецепттердің» қолдаушылары ғалымдардың көпшілігі емес екені, математикалық сандық талдаушылар мен интеграцияланған ортаны пайдаланатын үлкен қауымдастық арасындағы белгілі бір топ екені анық болды. Екінші басылым осы тар салалық ортада тұрақты орын алды. 2000-жылдардың ортасына қарай ғылыми есептеулер тәжірибесі дамыған Интернет пен ғаламдық желінің әсерінен түбірімен өзгерді. Авторлар «Сандық рецепттер» кітаптарының код мысалдарына қарағанда түсіндірме мәтініне көбірек мән берілетінін мойындап, кітаптың көлемін едәуір кеңейтіп, мәтіннің үлкен бөлігін қайта жазды. Олар әлі де әрбір әдіс үшін кітапта басылған C++ тілінде код қосуды жалғастырды. Үшінші басылым электрондық кітап түрінде де шығарылды, кейіннен ол ғаламдық желіде тегін (ескертулермен) немесе ақылы немесе мекемелік жазылым арқылы (тез, толық қол жетімділікпен және ескертулерсіз) қолжетімді болды. 2015 жылы «Numerical Recipes» өзінің тарихи екі әріпті домендік атын nr.com сатып, numerical.recipes деп өзгертті.
Мазмұны
Сандық рецепттер – алгоритмдердің өте кең ауқымын қамтитын бір томдық еңбек. Өкінішке орай, осы формат алгоритмдерді таңдауды қарапайым және қысқа ерте алгоритмдерге қарай ықпалдады, олар кейінірек дамыған күрделі алгоритмдерге қарағанда дәлдігі, тиімділігі және тұрақтылығы жағынан кемшіліктері болды. Бірінші басылымда кейінірек түзетілген шағын қателер де болды; алайда авторлардың айтуынша, олар жылдар бойы интернетте «Сандық рецепттер» «қателерге толы» деген қаңқуларға тап болды. Олар мұны кодтың ескі нұсқаларын пайдаланумен, кодтың басқа бөліктеріндегі қателермен және дұрыс түсініксіздіксіз қолданылатын процедураларды дұрыс қолданбаумен байланыстырды. Дегенмен, қарсы пікір кодтың шектеулеріне, шекаралық шарттарға және заманауи алгоритмдерге сілтеме жасаудың жоқтығына қатысты сынды қамтымайды, бұл Снайдердің пікірлер жинағындағы тағы бір тақырып. «Сандық рецепттер» [nr] өзі сандық талдау оқулығы емес екенін мәлімдейді және авторларының (астро) физиктер мен инженерлер екенін, сарапшылар емес екенін нақтылайды, сондықтан кітаптың күтілетін оқырмандарының мотивациясы мен асығушылығын бөліседі. NR авторларының негізгі қағидасы – түсінбеген сандық процедураларды қолдансаңыз, сәтсіздікке ұшырау ықтималы жоғары. Олар сізге математикалық егжей-тегжейлі мәліметтерді жеткілікті мөлшерде беруге тырысады, сіз олар ұсынатын процедураларды түсінесіз, олар туындаған кезде проблемаларды анықтай аласыз және NR процедураларының мүмкіндігі шектеліп қалғанда, оларды ауыстыру туралы толымды шешімдер қабылдай аласыз. Проблемалар туындайды, себебі [ ]
Лицензия
Кодтар тізімі авторлық құқықпен қорғалған және сандық рецепттер авторларымен коммерциялық лицензияланған. Кодты пайдалануға лицензия кітап сатып алумен бірге беріледі, бірақ пайдалану шарттары өте қатаң. Мысалы, бағдарламашылар NR кодын өздерінің дайын бағдарламаларынан бөліп алып, пайдаланудан қорғауын қамтамасыз етуі керек – бұл күмәнді орындалатын қиын талап. Дегенмен, "Сандық рецепттер" компьютерлік бағдарламаларға авторлық құқық туралы келесі мәлімдемені жасайды: «Авторлық құқық идеяларды қорғамайды, тек оларды нақты бір түрінде бейнелеуді ғана қорғайды. Компьютерлік бағдарламада идеялар бағдарламаның әдістемесі мен алгоритмінен, соның ішінде бағдарламашы қолданған қадамдардың қажетті тізбегінен тұрады. Егер сіз бағдарламадағы идеяларды талдап, содан кейін осы идеяларды өзіңіздің толығымен басқа бір іске асыруыңызда бейнелесеңіз, онда жаңа бағдарламаның іске асырылуы сізге тиесілі болады.»
Стиль
Тағы бір сын кітаптардың кодтау стиліне қатысты, ол кейбір қазіргі оқырмандарға "Fortran-ға ұқсас" секілді көрінеді, әйтсе де бұл кітаптар заманауи, объектіге бағытталған C++ тілінде жазылған. Авторлар кітап форматының талабына орай, орынның шектеулі болуы мен оқудың жеңілдігі үшін өте лаконикалық кодтау стилін қорғап келді.
Сериядағы атаулар (ішінара тізім)
Кітаптар басылымдары бойынша (бірінші, екінші және үшінші) және код жазылған компьютерлік тіл бойынша әртүрлі. Сандық рецепттер. Ғылыми есептеу өнері, 1-ші басылым, 1986, (Фортран және Паскаль)
Сандық рецепттер С тілінде. Ғылыми есептеу өнері, 1-ші басылым, 1988, Паскаль тіліндегі сандық рецепттер. Ғылыми есептеу өнері, 1-ші басылым, 1989, Фортран тіліндегі сандық рецепттер. Ғылыми есептеу өнері, 1-ші басылым, 1989, Базик тіліндегі сандық рецепттер. Ғылыми есептеу өнері, 1-ші басылым, 1991, (қосымша басылым)
Фортран 77-дегі сандық рецепттер. Ғылыми есептеу өнері, 2-ші басылым, 1992, C тіліндегі сандық рецепттер. Ғылыми есептеу өнері, 2-ші басылым, 1992, Fortran 90 тіліндегі сандық рецепттер. Параллель ғылыми есептеу өнері, 2-ші басылым, 1996, C++ тіліндегі сандық рецепттер. Ғылыми есептеу өнері, 2-ші басылым, 2002, Сандық рецепттер. Ғылыми есептеу өнері, 3-ші басылым, 2007, (C++ коды)
Кітаптар Кембридж университетінің баспасынан шығарылған.
Numerical Recipes in C. The Art of Scientific Computing, 1st Edition, 1988, Numerical Recipes in Pascal. The Art of Scientific Computing, 1st Edition, 1989, Numerical Recipes in Fortran. The Art of Scientific Computing, 1st Edition, 1989, Numerical Recipes in BASIC. The Art of Scientific Computing, 1st Edition, 1991, (supplemental edition)
Numerical Recipes in Fortran 77. The Art of Scientific Computing, 2nd Edition, 1992, Numerical Recipes in C. The Art of Scientific Computing, 2nd Edition, 1992, Numerical Recipes in Fortran 90. The Art of Parallel Scientific Computing, 2nd Edition, 1996, Numerical Recipes in C++. The Art of Scientific Computing, 2nd Edition, 2002, Numerical Recipes. The Art of Scientific Computing, 3rd Edition, 2007, (C++ code)
The books are published by Cambridge University Press.