2008-10-03 4 views
4

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

저는 운동학, 평면 모션, 뉴턴의 법칙, 중력, 일, 에너지, 운동량 및 운동량과 같은 것들에 대해 명령 줄 응용 프로그램 (심지어 입력을 필요로하지 않고 대답을 내뱉을 수도 있습니다)에 관심이 있습니다. 임펄스, 입자 시스템, 회전 운동학 및 동역학, 각운동량, 정적 평형, 진동 운동, 파동 운동, 소리, 물리적 광학, 정전기학, 가우스 법칙, 전기장 및 전위, 정전 용량, 저항, DC 회로, 자기장, 법률 및 인덕턴스.

나는 F 번호에 관심이 이유 때문에 언어가 제공하는 측정 기능의 단위입니다.

+2

학교에서 가장 교육받은 몇 년 동안 만들어진 물리학 및 미적분학. 그것들은 서로를 잘 보완합니다. 포옹하십시오 - 수식을 암기하는 대신 프로그래밍 (문제 해결)과 같은 물리학을 다루십시오. –

답변

11

는 F 번호 물리학에 이상적입니다. 그것은 당신을 위해 차원 분석을하는 측정 단위라고 불리는 기능을 가지고 있습니다. 잘못하면 오류를 제공합니다. 예를 들어, 당신은 작성하는 경우 : 중력이 <미터/초^2>가 아닌 <미터> 때문에 는, 컴파일 에러를 얻을 것이다

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

. 이렇게하면 많은 물리 관련 프로그래밍 오류를 방지 할 수 있습니다.

자세한 내용은 Andrew Kennedy's blog을 확인하십시오.

+0

그래서 F #에 대해 특별히 묻고 있습니다. :) 나는 내 질문에 찬사를 보냅니다. –

-1

어떤 컴퓨터 언어를 배우는 것은 당신에게 물리학을 가르 칠 것입니다, 당신은 어떤 언어로 프로그램을 작성하여 물리학을 배울 수 있습니다.

차원 분석, 그것은 "도 잘못하지"인에서 멀리 당신을 조종 할 수 있습니다 물리학 문제에 대한 다소 편리한 도구입니다.

난 항상 내가 잘못 어딘가에 내 단위를 가지고 것 때문에이 책 통화의 도입을 타고 ;-)

5

10^34의 요인에 의해 잘못된 답을 얻기에 어떤 심술 궂은 즐거움을 얻었습니다 "F 번호 과학자들을 위해 "(소개는 무료입니다.) F #은 이러한 종류의 분야에 매우 잘 적응 한 것 같으므로 분야에 대한 좋은 소개 인 것 같습니다.

소개를 살펴볼 수 있습니다.

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

(그리고 아니, 나는 저자 ;-)

1

Fsharp 하나의 선택과는 전혀 관계가 없다. 장기적으로 도움이 될 수있는 기술을 배우고 싶다면 파이썬을 배우지 않는 것이 좋습니다. 당신은 또한 당신 손가락 끝에서 그때도 numpy과 scipy 있습니다.

+0

내가 F #을 좋아 한 이유는 측정 단위 때문이며 .NET 프로그래밍로 돌아갈 좋은 이유가되기 때문입니다. –

2

예 (모든 언어가)와 아니오 (아마 그들은 파이썬을 사용하는 것처럼, 미래의 동료가 사용할 것을 배운다.). 흥미로운 점은 Fortress입니다. 내 편견 의견으로

2

물리학 교수가 한 번 생각한 재미있는 미적분 기법 : 주어진 오븐에서 1 파운드 칠면조를 완벽하게 요리하는 데 1 시간이 소요되며, 2 파운드 칠면조를 요리하는 데 얼마나 오래 걸릴까요? 같은 오븐인가요?

그럼 차원 분석 도시

(1) 칠면조 요리를 위해 필요한 열에너지의 총량 자체는 그 자체의 체적에 비례 칠면조의 질량에 비례 그 큐브에 비례하여 평균 "반경"

요리 열 에너지 = k1 * (turkeyRadius "^ 3) ==> 단위 : m^3 * k (k1 단위는 J/m^3)

(2) 오븐에서 제공하는 열 에너지의 총량은 칠면조의 표면에 요리 시간을 곱한 값에 비례합니다 그것은,

열 오븐 = K2가 제공 * 시각 * (K2 단위는 J/s/m^2) (turkeyRadius^2) 다음에 사용하여

(1) = (2) 당신
시간을 구하는 = K1/K2 * turkeyRadius^(3/2)


- turkeyRadius 중 입방 루트 proportionnal 것을 주어진 - 조리 시간 반경^3/2
에 proportionnal 인 질량은 우리가 얻는다
요리 시간 = k3 * sqrt (질량)

그래서 2 파운드의 칠면조를 요리하기 위해 sqrt (2) 시간이 더 걸릴 것이며 그 결과는 전혀 계산되지 않은 차원 분석에 의해 얻어집니다.

2

예, F #은 기능적 프로그래밍을 기반으로하는 훌륭한 방법입니다. Chris Smith가 자신의 대답에서 말한 것처럼 말입니다. 저는 F #을 사용하여 물리학, 공학 및 생물학에 대한 광범위한 토론을하고 있습니다. 나는 확실히 너 자신과 같은 학생의 의견을 사용할 수있다. 실생활 문제를 염두에두고 프로그래밍하는 것이 프로그래밍의 한 방법입니다. 성공하는 다른 방법은 컴퓨터를 사용하는 사람들이 사용하는 솔루션을 제공하는 것입니다. 확실히 다른 방법은 가고 다른 것을 만드는 방법입니다.

F #은 Physics와 같은 지식 도메인 용으로 만들어졌습니다.

관련 문제