카테고리 보관물: scicomp

scicomp

컴퓨터 과학을 위해 어떤 언어를 배워야합니까?

나는 전산 과학 개념에 완전히 익숙하지 않으며 좋은 출발점을 찾고 있습니다.

나는 객관적으로 가장 좋은 언어는 없지만, 계산 과학과 관련하여 논란의 여지없이 강력하고 눈에 띄는 언어-탁월한 능력과 효율성을 가진 언어를 배우고 싶습니다.

시작하기 위해 나는 그래픽 표현 / 시뮬레이션에 대한 요구와 함께 원자 결합 및 상호 작용과 관련된 모델링에 기울고있었습니다.

일부 언어는 다른 언어보다 일부 분야에서 더 나은 경향이 있습니까 (예 : 물리 대 순수 수학)? 아니면 다른 요인에 따라 언어를 선택합니까?

Fortran이라는 이름이 많이 들렸다 고 들었습니다.

제안?



답변

대부분 작업을 수행하는 데 도움이되는 숫자 라이브러리가 있습니다. C / C ++에는 많은 수의 숫자 라이브러리가 구현되어 있지만, 저수준 언어 인 것이 무언가를 빠르게 프로토 타입 화하는 것이 최선은 아닙니다.

나는 해결책을 향해 빨리 가고 싶다고 생각합니다. Matlab이나 Mathematica와 같은 것을 사용하는 것이 좋습니다. 그들은 큰 툴셋을 가지고 있으며 매우 높은 수준입니다. 대부분의 경우 구현은 프로덕션 용도로 확장되지 않지만 다른 방법을 시도하기에 좋은 놀이터 일 수 있습니다. 경로를 알고 나면 언제든지 C / C ++로보다 효율적으로 무언가를 구현할 수 있습니다.


답변

파이썬!

  1. numpy 라이브러리, 작은 스크립트 및 ipython 대화식 쉘을 사용하여 직접 시작하십시오 .
  2. 수많은 무료 서적과 튜토리얼 을 통해 더 발전하십시오 .
  3. scipy 를 프론트 엔드로 사용하여 생산성 이 높은 수치 루틴과 matplotlib 를 시각화 하여 생산성 을 높이십시오.
  4. 잘 개발하고 강력한 과학적 컴퓨팅 모듈을 이용 받아 Krypy , FeNiCS다른 사람을 많이
  5. 플랫 및 객체 지향 프로그래밍 사이의 원활한 전환과 Python의 고유 모듈 식으로 인해 대규모 프로젝트를 쉽게 처리 할 수 ​​있습니다.
  6. cython 에서 중요한 부분을 간단히 다시 작성하여 코드를 C 또는 Fortran처럼 빠르게 만드십시오 . Fortran 또는 C로 작성된 루틴을 쉽게 포함 할 수도 있습니다 .

이것은 과학적 컴퓨팅의 문제에 접근하는 가장 좋은 방법이라고 생각합니다. 작은 스크립트에서 장난감 예제를 사용하여 문제를 해결하는 것으로 시작하십시오. 보다 체계적이고 코드 모음을 설정하십시오. 그런 다음 코드를 작동 시키십시오 !!! 마지막으로 필요한 경우 코드 최적화를 수행하십시오. 바퀴를 재발 명하지 말고 조기 최적화를하지 마십시오.

(추가적인 장점 : 파이썬은 라이센스 문제가없고, 대규모 커뮤니티 (예 : 스택 오버 플로우, 단위 테스트 또는 로깅과 같은 훌륭한 프로그래밍을위한 모듈)를 제공합니다.)


답변

예를 들어 Python Scienceing for Computational Science 에 설명 된대로 Python을 사용해보십시오 .


답변

파이썬은 훌륭한 출발점이 될 수 있습니다. 다음 자료는 훌륭한 출발점입니다.

http://www.openbookproject.net/thinkcs/python/english2e/


답변

포트란 : Matlab과 유사하고 배우기 쉽고 사용하기 쉬우 며 빠르게 생산성을 얻을 수 있지만 수치 컴퓨팅에만 적합

C ++ : 마스터하기가 어렵지만 (수년이 걸릴 것입니다) 수치 컴퓨팅 외부에서 많은 것을 사용했습니다 (작업 보안)

파이썬 : 요즘에는 많이 추천했지만 사소한 작업에는 너무 느립니다. 기본적으로 계산 비용이 많이 드는 모든 커널을 C로 작성한 다음 Python에서 호출합니다. 이는 적어도 두 가지 언어를 배워야한다는 것을 의미합니다


답변

간단한 답변
파이썬을 통해 객체 지향 코드의 기본에 대해 배우고 C를 통해 컴퓨터 과학의 기본에 대해 배우십시오. 두 언어가 모두 괜찮다면 C ++을 배우십시오 .C ++에서 거의 모든 것을 할 수 있기 때문에 (빠르게 쓰는 데는 시간이 걸리지 만) 빠르게 실행되도록하십시오.

더 긴 대답
여기에 문제가 있습니다. 첫 번째 프로젝트의 경우 누군가의 실험실에서 다른 사람의 코드를 작업하게됩니다. 어떤 경우에는 프로그래밍 언어를 선택하는 사람이됩니다. 개인적으로 생각하는 것은 대단합니다!

초심자로서, 당신은 실제로 팔꿈치에서 당신의 엉덩이를 한동안 알지 못할 것입니다. 따라서 다른 사람의 코드에서 작업함으로써 오는 구조와 한계를 갖는 것이 좋으며 실제 프로젝트에서만 작업 할 수있는 동기와 흥분을 갖는 것이 좋습니다.

그래도 실험실에서 사용하는 언어 (특히 Matlab 인 경우)에 관계없이 파이썬, C 및 C ++를 배워야합니다. 특히, 컴퓨터 과학 분야 출신이 아닌 경우 Kernighan과 Ritchie의 “C Programming Language”를 읽어야합니다. 35 살이었고 작가들이 펀치 카드로 프로그래밍하고 있다는 인상을 받았지만, 가장 희귀 한 조류는 영원한 컴퓨터 과학 책입니다. 그것은 많은 것들을 훨씬 더 명확하게 만들 것입니다.


답변