OCaml은 수치 분석에 적합합니까? [닫은]


10

나는 현재 수치 방정식 시스템을 풀기 위해 C와 일부 포트란을 사용하고 있습니다.

나는이 두 언어 모두에 조금 지쳐 있지만 효율적인 코드가 필요합니다 ... OCaml로 전환하려고 생각하고 있습니다.

그만한 가치가 있습니까?


4
나는 SciPy를 강력히 추천한다-그것은 무료이며 Matlab처럼 보이지만 (파이썬), 그리고 몇 줄만 있으면 완성됩니다! scipy.org/Cookbook/…
직업

1
MATLAB. 미분 방정식 시스템의 수치 해법은 해결 된 문제이며 꽤 오랫동안 사용되어 왔습니다. 당신의 목표가 당신의 숫자를 망치는 것이라면, 지난 수십 년 동안 개발 된 도구를 사용하여 그렇게하십시오. 아무리 재미 있어도 바퀴를 재발 명하지 마십시오. 많은 시간과 악화를 피할 수 있습니다.
John R. Strohm

답변:



7

우선, 수치 계산의 경우 고급 언어가 저급 언어 보다 장기적으로 훨씬 유용하다는 특이한 진술을하고 싶습니다 . Fraunhofer Institut의 연구원을 일기 예보에 사용 된 수치 시뮬레이션에서 느슨하게 인용하겠습니다.

지난 10 년 동안 CPU는 1000 배 빨라졌고 알고리즘은 1000 * 1000 빨라졌습니다. 이는 어제의 CPU에서 실행되는 오늘날의 알고리즘이 오늘의 CPU에서 실행되는 어제의 알고리즘을 1000 배나 능가한다는 것을 의미합니다.

분명히 디스크 또는 RAM과 같은 CPU 속도 및 알고리즘으로 고려해야 할 매개 변수가 훨씬 더 많지만,이 문장은 낮은 수준의 언어를 선택하면 잘못된 요소 (1000 대신 1000)에 집중한다는 것을 이해하는 데 도움이됩니다. 1000 * 1000).

물론 특정 수치 알고리즘이 주어지면 C 또는 Fortran이 OCaml 또는 Common Lisp를 (실제로는 그렇지 않음) 큰 요인으로 이길 것으로 기대할 수 있습니다. 그러나 실제로 수치 문제에 관심이 있고 알고리즘을 개선하려는 경우 아이디어를 높은 수준으로 표현하고 알고리즘을 쉽게 개선 할 수있는 고급 언어를 선택해야합니다.

참고로 OCaml에서 숫자 코드 작성을 고려할 경우 OCaml이 매개 변수를 함수, 인라인 함수 및 언 박스 플로트에 전달하는 방법에 대해 반드시 알아야합니다. 이 모든 것은 Xavier Leroy의 노트에 자세히 설명되어 있습니다 .


답변 해주셔서 감사합니다. 나는 J에 의지하여 그것을 좋아했습니다. OCaml은 저에게 아주 가까운 시간입니다.
Eelvex

6

to solve numerically systems of differential equations모두 적절한 라이브러리의 첫 번째해야합니다. 따라서 필수 점검은 다음과 같습니다. 프로그래밍 언어가이를 x지원합니다.

개인적으로 나는보다 쓰기 코드를 높은 수준으로 좋아하는 CFortran때문에 내가 사용하는 한 Matlab, Octave, numpy\scipy.


2

최소한 멀티 스레드 프로그래밍을 볼 때까지 OCaml을 좋아했습니다.

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