2011년 03월 01일
mathematica 로 구현한 2차원 Ising model
쓰메티카를 배우고서 뭔가 하나 만들어보자 싶어서 만들어봤다.
2d Ising model 알고리즘은 Schroeder의 열역학책을 참고했다.
1차원 푸는 방법도 동일..
먼저 여기서 사용한 Ising model 이란 강자성체(쉽게 말해서 자석)이 온도에 따라서 어떻게 변하나(자력이 어떻게 변하나)
예측하기 위해 아주 간단하게 모델링 한 것이다.
모델링에 사용된 주요한 방법은 몬테카를로 방법이다. 그중에서 뭐 메트로폴리스 방법을 썼다.
자세한 내용은 첨부된 ppt나 책을 참고해 주시고....
아무튼 T(온도)가 낮으면 강하게 강자성을 띄고, T가 높으면 상자성을 띈다.
잘 되나 안되나 테스트용으로 만들었기 때문에 매우 대충 만들어서 느리다. 거기다 매쓰메티카는 정말 느리구나.
먼저 T = 1 K (섭씨 -272.7 도) 에서 100x100 에서
초기는 무작위 상태에서 상자성이 어떤 경향을 띄는지 살펴보면..
한쪽으로 자기모멘트가 정렬된다. 즉, 완전한 강자성체가 된다.
임계온도로 추정되는 2.27 K (섭씨 271.43 도) 에서는 이제 상자성체로 넘어가려는 경향을 살짝 보여준다.
그리고 이제 여러 온도에서 총자화(M) 이 어떻게 변하나 측정해보면 아래와 같은 데이터를 얻을 수 있다.

온도가 높아지면 상자성을 띄는구나!

거기다 당연히 온도가 올라가면 에너지도 높아지고

제작한 메스메티카 소스와 ppt 는 아래 첨부파일!
# by | 2011/03/01 12:43 | 트랙백 | 덧글(0)







