수치 레시피에 대한 현대의 대안은 무엇입니까? [닫은]


21

과거에는 Numerical Recipes (숫자 레시피) 책은 숫자 알고리즘에 대한 황금 표준 참조로 간주되었습니다. 초기 Fortran Edition은 C 및 C ++ 및 기타 버전의 에디션으로 구성되어 최신 버전을 제공합니다. 이를 통해 최신 알고리즘에 대한 참조 코드를 제공했습니다.

이전 버전 현재 온라인에서 무료로 제공됩니다 .

불행히도, 나는 그것이 현재는 역사적인 주제로만 유용하다고 생각합니다. "소프트웨어 엔지니어링"사례는 구식 인 것으로 보이며 실제 내용은 문헌과 보조를 맞추지 못했습니다.

현대 프로그래머는 이와 비슷하지만 접근하기 쉬운 참고 문헌을 대신보아야합니까?


7
알고리즘 자체는 범용 문제 해결에 매우 좋습니다. 원하는 것을 남길 수있는 것은 구현입니다. 그러나 책의 코드는 취향에 맞게 수정할 수 있기 때문에 간단합니다. 이 장의 구현은 상당히 "독립적"이며 엉킴이 없습니다. 수치적인 레시피는 기본적인 수치를 구현해야하지만 거대한 복잡하거나 비싼 라이브러리 또는 프레임 워크를 원하지 않거나 필요로하지 않는 경우에 여전히 좋은 참조 자료입니다.
Angelo

3
그것이 의미하는 바와 같이,이 질문은 모욕적 인 것으로 간주 될 수 있지만, 그다지 건설적인 것은 아닙니다. 나는 경력 내내 Numerical Recipes를 사용했으며 복잡한 문제를 해결하기 위해 알고리즘에 대한 준비된 참조가 필요한 사람에게 강력히 권장합니다. 코드를 직접 사용한 적이 없지만 선호하는 인터페이스를 사용하여 항상 자신의 언어로 알고리즘을 구현했습니다. 당신이 보는 것처럼 보이는 문제는 피상적이며, 보려는 경우 일반적으로 더 나은 알고리즘이 있지만 NR조차도 올바른 방향을 가리킬 때 유용합니다.
마크 부스

5
나는이 책에 제공된 C와 C ++ 코드가 좋은 포트란 프로그래머가 어떤 언어로든 좋은 포트란 코드를 작성할 수 있다는 것을 다시 한번 증명한다는 데 동의해야한다. 그러나이 책들은 여전히 ​​훌륭한 참고 자료입니다. 알고리즘에 대한 설명은 매우 명확합니다. 코드는 기본적으로 사용할 수 있으며 실제로 감성을 상하게하는 경우 언제든지 직접 다시 작성할 수 있습니다. 처음부터 구현하는 것보다 훨씬 쉽습니다.
Dima

12
NR 코드에 대한 저작권 제한은 매우 엄격합니다. 귀하는 최대 10 개의 루틴에 대해서만 코드를 직접 입력 할 수 있으며 결과 프로그램을 다른 사람이나 컴퓨터에 배포 할 수 없습니다. 거의 모든 작업 환경에서 이것은 어쨌든 알고리즘을 다시 구현해야 함을 의미하므로 정교한 OO 또는 기능 구현을 제공하는 작성자의 이점은 무엇입니까? 이 책에서 제공하는 서비스는 강력한 수학 라이브러리가 아닌 중요한 알고리즘에 대한 명확한 설명입니다.
Charles E. Grant

3
코드가 어떤지 누가 신경 쓰나요? 그것을 멋지게 감싸고 결코 보지 마십시오.
David Heffernan

답변:


7

Numerical Recipes의 관점에서, 알고리즘이 프로그래밍 구현으로 변환되는 방식에 대한 이해와 사물을 예약하는 참조 구현이라는 두 가지가 필요합니다.

없을 것 같다 NO BOOK + 참조 소프트웨어의 조합. 그러나 좋은 참조 소프트웨어가 있으며이 중 일부는 그러한 알고리즘을 기반으로 한 논문에 대한 참조를 제공합니다.

다음은 도움이 될 수있는 일부 참조 (주로 오픈 소스) 라이브러리 목록입니다.

  1. GNU 과학 라이브러리
  2. LAPACK 그것은 사용자 매뉴얼 로서 좋은 을 가지고 있습니다 LAPACK ++기타 (TNT) 파생 / 관련 패키지도 있습니다. 자세한 내용은 이것을 참조하십시오.
  3. 선형 대수 부스트
  4. 아르마딜로
  5. BLAS

다른 구체적인 것들은

  1. 통계 모델을위한 Apophenia
  2. 망아지
  3. FFTW
  4. R 패키지
  5. OpenCV
  6. 인텔 수학 커널 라이브러리
  7. 대한 패턴 인식

" 오픈 소스 도구를 사용한 데이터 분석 "을 확인할 수도 있습니다 .

내가 모든 것을 확인하지는 않았지만 여기에 큰 비교 목록이 있습니다.
http://www.netlib.org/utk/people/JackDongarra/la-sw.html


4

Numerical Recipes는 여전히 유용한 책인 IMO입니다. 알고리즘, 파생 상황, 유용한 상황 및 사용하지 않을 때 고려해야 할 대안을 포함하여 알고리즘을 실제로 잘 설명합니다. 몇 년 동안이 책을 사용해 왔습니다.

내가 사용한 적이없는 것은 코드입니다. 나는 항상 그들이 설명하는 알고리즘을 기반으로 자신의 구현을 작성합니다. 그런 점에서 코드의 품질은 중요하지 않습니다 (그리고 실제로 의심의 여지가 있습니다 : 2 판 C 책에서 저자는 포트란 배경에서 왔기 때문에 배열을 단위 색인으로 만드는 함수 및 매크로 모음을 정의합니다). 예를 들어 Objective-C에서 FFT를 구현해야했기 때문에 Fortran에서 NR을 사용하여 FFT의 기능과 코드의 모양을 이해했습니다.

NR을 Knuth와 같은 방식으로 생각하십시오.이 책의 코드를 프로젝트에 절대 붙여 넣지 않을 것입니다.


3

개인적으로 좋아합니다. 이해할 수있는 수준에 관한 것입니다.

이 코드는 Fortran이 'C'로 번역되었지만 Fortran으로 다시 변환 한 다음 C ++로 직접 변환해도됩니다. 코드가 거의 자체 포함되어 있다는 점에서 Fortran 또는 C 버전의 장점이 있습니다. 특히 C 코드 클래스를 드래그하여 행렬, 복잡한 등을 수행 할 필요가 없습니다. 특히 코딩 품질이 중요합니다!

저자의 우스꽝스러운 저작권 주장에 대한 정당한 반대 의견이 있으며, 수업 시간에 NR을 금지하는 많은 강사를 알고 있습니다. 수치 전문가들 사이에서이 책은 "충분한 정보를 얻을 수있는 충분한 정보"로 명성을 얻고 있습니다. 그러나 유일한 제안은 일반적으로 개인 코드를 사용하거나 NAG를 구매하는 것입니다.

대체 고품질 수치 라이브러리의 권장 모음은 http://www.netlib.org/ 에 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.