문제

나는 물리학을 싫어하지만 소프트웨어 개발을 좋아합니다. 추수 감사절 후에 학교로 돌아갈 때, 나는 끔찍한 일을하기 전에 2/4의 물리학을 복용 할 것입니다. 현재 F# 단위의 측정 기능에 대한 게시물을 읽고 있지만 F#과 같은 언어를 사용한 적이 없습니다. 내가 좋아하는 일을하면서 물리학에 대해 배울 수 있도록 응용 프로그램을 작성하는 것이 적합합니까?

Kinematics, Planar Motion, Newton 's Laws, Gravitation, Work, Energy, Momentum and Impulse, Systems의 Kinematics, Planar Motion, Newton의 법칙과 같은 것들에 대한 명령 줄 응용 프로그램 (입력을 필요로하지 않고 입력 할 수있는 응용 프로그램조차도)에 관심이 있습니다. 입자, 회전 운동학 및 역학, 각 운동량, 정적 평형, 진동 운동, 파동 운동, 음향, 물리 광학, 정전기, 가우스의 법칙, 전기장 및 잠재력, 커패시턴스, 저항, DC 회로, Ampere 's Law 및 INCUNCITANCE .

내가 F#에 관심이있는 이유는 언어가 제공하는 측정 기능 단위 때문입니다.

도움이 되었습니까?

해결책

편견이있는 견해로는 F#은 물리학에 이상적입니다. 그것은 당신을 위해 치수 분석을 수행하는 측정 단위라는 기능을 가지고 있으며, 잘못된 경우 오류를 제공합니다. 예를 들어, 당신이 작성하는 경우 :

let distance : float<meters> = gravity * 3.0<seconds>

그럴 것입니다 컴파일 오류를 생성합니다, 중력은 <metters/segs^2>이고 <meters>가 아니기 때문에. 이것은 많은 물리 관련 프로그래밍 오류를 방지합니다.

자세한 내용은 확인하십시오 앤드류 케네디의 블로그.

다른 팁

나는 책 전화 "F# for Scientists"(소개가 무료로 제공됨)의 소개를 탔으며, F#가 이런 종류의 분야에 잘 적응 한 것처럼 보이기 때문에이 분야에 대한 좋은 소개 인 것 같습니다.

소개를보고 싶을 수도 있습니다.

http://www.ffconsultancy.com/products/fsharp_for_scientists/

(그리고 아니, 나는 저자와 관계가 없다 ;-)

예 (모든 언어는) 그리고 아니오 (파이썬을 사용하는 것처럼 미래의 동료들이 무엇을 사용할 것인지 배우십시오). 흥미로운 제쳐두는 것입니다 요새.

치수 분석 정보 : 내 물리 교수 중 한 명이 제공 한 재미있는 미적분 트릭 : 주어진 오븐에서 1 파운드 칠면조를 완벽하게 요리하는 데 1 시간이 걸리면 2 파운드 칠면조를 요리하는 데 얼마나 걸립니까? ?

글쎄, 치수 분석은 보여줍니다

(1) 칠면조를 요리하는 데 필요한 총 열 에너지의 총량은 칠면조의 질량에 비례하며, 그 자체는 부피에 비례하며, 그 자체는 평균 "반경"의 입방체에 비례합니다.

조리 열 에너지 필요한 = k1 * (Turkeyradius "^3) ==> 단위 : m^3 * k (여기서 k1 단위는 J / m^3)

(2) 오븐이 제공하는 총 열 에너지의 총량은 칠면조 표면에 비례하여 요리하는 시간을 곱한 것입니다.

오븐에서 제공 한 열 = k2 * time * (Turkeyradius ^ 2) (여기서 K2 단위는 J / s / m ^ 2)

그런 다음 (1) = (2)를 사용하여
시간 = k1 / k2 * Turkeyradius ^ (3/2)


- 요리 시간은 반경에 비례합니다 ^ 3/2
- Turkeyradius가 질량의 입방 뿌리에 비례한다는 것을 감안할 때, 우리는
요리 시간 = k3 * sqrt (질량)

따라서 2 파운드 칠면조를 요리하는 데 SQRT (2)가 더 오래 걸리며 결과는 전혀 계산없이 얻어집니다.

예, F#은 Chris Smith가 그의 답변에서 말했듯이 기능 프로그래밍을 구축하는 좋은 방법입니다. F#을 사용하여 물리, 공학 및 생물학에 대한 광범위한 토론을 구축하고 있습니다. 나는 확실히 자신과 같은 학생의 입력을 사용할 수 있습니다. 실제 문제를 염두에두고 프로그래밍하는 것은 프로그래밍의 한 가지 방법입니다. 성공적인 다른 방법은 컴퓨터를 사용하는 사람들 만 사용하는 솔루션, 확실히 다른 방법 및 부를 구축하는 솔루션을 제공하는 것입니다.

F#은 물리와 같은 지식 영역을 위해 만들어졌습니다.

FSHARP는 하나의 선택입니다. 더 장기적으로 이익이 될 수있는 기술을 배우고 싶다면 파이썬을 배우지 마십시오. 당신은 또한 당신의 손가락 끝에 numpy와 scipy를 가지고 있습니다.

컴퓨터 언어를 배우는 것은 물리학을 가르치지 않을 것이며 어떤 언어로든 프로그램을 작성하여 물리학을 배울 수 있습니다.

치수 분석은 물리 문제를위한 다소 편리한 도구이며, "잘못되지 않은"것을 피할 수 있습니다.

나는 10^34의 요인으로 대답을 잘못 이해하는 데 항상 불리한 즐거움을 얻었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top