숫자 레시피

Numerical Recipes
숫자 요리법:
NumericalRecipes3rdEdCover.jpg
제3판(C++) 표지

작가윌리엄 H. 언론, 사울 A. Teukolsky, William T. Betterling and Brian P. 플란너리
언어영어
규율수치해석
출판사.케임브리지 대학교 출판부
웹사이트숫자.수.

숫자 레시피윌리엄 H.프레스 사울 A알고리즘수치 분석에 관한 일련의 책들의 총칭이다. Teukolsky, William T.Betterling and Brian P. 플래너리.각종 판본에서는 1986년부터 인쇄되고 있다.가장 최근의 판은 2007년에 출판되었다.2015년 수치레시피는 역사적인 두 글자의 도메인 이름인 nr.com[1]을 팔아서 유명해졌다.numerical.recipes대신에

개요

숫자 레시피 책에는 고전적인 수치 분석(인터폴레이션, 통합, 선형대수, 미분방정식 등), 신호 처리(푸리에 방법, 필터링), 데이터의 통계 처리, 머신러닝(숨겨진 마르코프 모델, 지원 벡터 머신)의 몇 가지 주제가 모두 포함된 다양한 주제가 수록되어 있다.글씨는 접근성이 좋고, 격식을 차리지 않는 어조가 있다.최적의 성능과 신뢰성을 달성하기 위해 실제로 필요할 수 있는 정밀한 작업이 아니라 기법의 기본을 이해하는 데 중점을 둔다.비록 증명 뒤에 있는 아이디어들은 종종 스케치되고, 참고자료들이 주어지지만, 어느 정도의 엄격함으로 증명되는 결과는 거의 없다.중요한 것은, 실질적으로 논의되는 모든 방법들도 프로그래밍 언어로 구현되어 있는데, 그 코드는 책에 인쇄되어 있다.각 버전은 특정 언어에 맞춰져 있다.

출판사인 케임브리지 대학교 출판사에 따르면, 숫자 레시피 책들은 역사적으로 과학적인 프로그래밍 방법에 관한 가장 많이 팔린 책들이다.ISI 지식의 웹(예: 2008년 3962회)에 따르면 최근 몇 년 동안 숫자 레시피 책들이 과학 문헌에 매년 3000회 이상 인용되고 있다.[2]그리고 2017년 말 현재 이 책은 구글 스콜라에서 44,000개 이상의 인용구를 가지고 있다.[3]

역사

첫 번째 출판물은 1986년"이라는 제목으로 출판되었다.Fortran과 Pascal의 코드를 모두 담고 있는 수치적 레시피, The Art of Scientific Computing; 첨부된 책 "숫자적 레시피 예시서(Pascal)"는 1985년에 처음 출판되었다. ("예시"의 서문 노트에는 본서도 1985년에 출판되었다고 언급되어 있지만, 그 책에 있는 공식 노트에는 1986년에 쓰여 있다.)Pascal, BASIC, C에서 코드와 함께 보충판이 뒤따랐다.숫자 레시피는 처음부터 숫자 분석 커뮤니티의 통념과 상충하는 의견 있는 편집 입장을 취하였다.

만약 이 책에 지배적인 주제가 하나 있다면, 숫자 계산의 실용적인 방법들이 효율적이고, 영리하며, 그리고 중요한 것은 명확할 수 있다는 것이다.효율적인 계산 방법은 "블랙박스" 형태에서만 유용할 정도로 매우 난해하고 복잡해야 한다는 대안적인 관점, 우리는 단호히 거부한다.[4]

그러나, 밝혀진 바와 같이, 1980년대는 BLASLAPACK과 같은 중요한 도서관과 MATLAB, Mathematica와 같은 통합 환경을 제공하면서 "블랙박스" 쪽에 비옥한 시기였다.1990년대 초, 숫자 레시피의 제2판 버전(C, Fortran-77, Fortran-90의 코드 포함)이 출판되었을 때, 숫자 레시피의 선거구는 결코 연산을 하는 과학자의 대다수가 아니라, 더 수학적인 수치 분석가와 더 큰 통신사이에 살고 있는 그 조각만이 분명했다.통합 환경을 사용한 통합Second Edition 버전은 이러한 틈새 환경에서 안정적인 역할을 담당했다.[5]

2000년대 중반까지, 과학 컴퓨팅의 관행은 성숙한 인터넷과 웹에 의해 근본적으로 변화되었다.그들의 숫자 레시피 책이 코드 사례보다 설명 텍스트로 점점 더 중시되고 있다는 것을 인식하면서, 저자들은 책의 범위를 크게 넓혔고, 본문의 많은 부분을 다시 썼다.그들은 논의된 모든 방법에 대해 여전히 책에 인쇄된 코드를 계속 포함시켰다.[6]제3판은 또한 전자책으로도 출시되었고,[7] 결국 웹에서 무료로 이용 가능하게 되었다(페이지뷰가 제한되어 있음) 또는 유료 또는 기관 구독으로(페이지뷰가 제한되어 있음).

비판

수치적 레시피는 매우 광범위한 알고리즘을 다루는 단일 책이다.불행히도 그 형식은 알고리즘의 선택을 더 복잡하게 만드는 알고리즘만큼 정확하지 않고 효율적이거나 안정적이지 못한 더 단순하고 짧은 초기 알고리즘으로 치우쳤다.[8][9][10]초판에도 몇 가지 사소한 버그들이 있었는데, 그것은 후판에서도 고쳐졌다. 그러나 저자들에 따르면 그들은 수년간 "숫자 레시피"가 "버그로 가득 차 있다"는 인터넷 루머에 부딪쳤다.그들은 이것을 구식 버전의 코드를 사용하는 사람들, 코드의 다른 부분에 있는 버그, 그리고 올바르게 사용하기 위해 어느 정도 이해가 필요한 루틴의 오용 탓으로 돌렸다.[11]

코드 목록은 숫자 레시피 저자에 의해 저작권이 있고 상업적으로 허가된다.[12]그러나 숫자 레시피에는 컴퓨터 프로그램의 저작권에 관한 다음과 같은 문구가 포함되어 있다.

저작권은 아이디어를 보호하는 것이 아니라 특정한 형태로만 그 생각을 표현한다.컴퓨터 프로그램의 경우, 아이디어는 프로그래머가 채택한 필요한 단계의 순서를 포함하여 프로그램의 방법론과 알고리즘으로 구성된다.그 아이디어들의 표현은 프로그램 소스 코드 입니다...프로그램에 포함된 아이디어를 분석한 다음, 완전히 다른 구현으로 그 아이디어를 표현한다면, 그 새로운 프로그램 구현은 당신의 것이다.[7]

GNU 과학 도서관의 초기 동기 중 하나는 무료 도서관이 숫자 레시피의 대체물로 필요하다는 것이었다.[13]

또 다른 비판의 라인은 현대적이고 객체 지향적인 C++[13]로 쓰여졌지만 일부 현대 독자들을 "포트란식"으로 놀라게 하는 이 책의 코딩 스타일에 초점을 맞추고 있다.저자들은 공간적 한계와 가독성 때문에 책의 형식에 필요한 그들의 매우 간결한 코딩 스타일을 옹호해 왔다.[5]

영상 시리즈의 제목(부분 목록)

책은 판(1판, 2판, 3판)과 코드가 주어진 컴퓨터 언어에 따라 다르다.

  • 숫자 레시피. 1986년 1월호 과학 컴퓨팅의 기술 ISBN0-521-30811-9 (포트란파스칼)
  • C의 수치적 조리법 The Art of Scientific Computing, 1988년 1월호, ISBN 0-521-35465-X.
  • 파스칼의 수치적 요리법. The Art of Scientific Computing, 1989년 1월호 ISBN 0-521-37516-9.
  • Fortran의 수치 요리법. The Art of Scientific Computing, 1989년 1월호 ISBN 0-521-38330-7.
  • 숫자 레시피(BASIC) The Art of Scientific Computing, 제1판, 1991년 ISBN 0-521-40689-7 (보조판)
  • Fortran의 수치 요리법. The Art of Scientific Computing, 1992년 2월호 ISBN 0-521-43064-X.
  • C의 수치적 조리법 The Art of Scientific Computing, 1992년 2월호 ISBN 0-521-43108-5.
  • Fortran 90의 수치적 요리법. 평행 과학 컴퓨팅의 기술, 제2판, 1996년 ISBN 0-521-57439-0.
  • C++의 숫자 요리법. The Art of Scientific Computing, 2002년 2월호 ISBN 0-521-75033-4.
  • 숫자 레시피. The Art of Scientific Computing, 2007년 3월호, ISBN 0-521-88068-8. (C++ 코드)

이 책들은 캠브리지 대학 출판부에서 출판했다.

참조

  1. ^ "Two letter domain NR.com sold : Rebrands to Numerical.Recipes". 14 October 2015.
  2. ^ Thomson Reuters, Web of Knowledge, 인용 참조 검색.
  3. ^ [1], Google Scholar
  4. ^ Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P. (1986). "Preface". Numerical Recipes: The Art of Scientific Computing. New York: Cambridge University Press. p. xi. ISBN 0-521-30811-9.
  5. ^ a b 언론, 윌리엄 H; 그리고 테우콜스키, 사울 A.; "수치적인 요리법:이 패러다임에는 미래가 있을까?" 물리학의 컴퓨터, 11, 416 (1997년)사전 인쇄.
  6. ^ Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P. (2007). "Preface to the Third Edition". Numerical Recipes: The Art of Scientific Computing (3rd ed.). New York: Cambridge University Press. p. xi. ISBN 978-0-521-88068-8.
  7. ^ a b Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P. (2007). Numerical Recipes: The Art of Scientific Computing (3rd ed.). New York: Cambridge University Press. ISBN 978-0-521-88068-8.
  8. ^ "Reviews: Numerical Recipes". www.quut.com. Retrieved 28 January 2019.복제 URL
  9. ^ Van Snyder, W. "Why not use Numerical Recipes?". www.uwyo.edu. Retrieved 28 January 2019.복제 URL
  10. ^ "Alternatives to Numerical Recipes". Archived from the original on 18 January 2016.
  11. ^ "Numerical Recipes Distressing Rumors". numerical.recipes. Retrieved 28 January 2019.
  12. ^ 숫자 레시피 웹 사이트, 숫자 레시피 코드
  13. ^ a b Galassi, Mark; Theiler, James; Gough, Brian. "GNU Scientific Library -- Design document". GNU Operating System. GNU.org. Retrieved January 5, 2019.

외부 링크