- TI nspire
[TI-nspire] [프로그래밍] 몬테 카를로 방법 예시 - Monte Carlo Method
1. 몬테 카를로 방법이란?
https://ko.wikipedia.org/wiki/%EB%AA%AC%ED%85%8C%EC%B9%B4%EB%A5%BC%EB%A1%9C_%EB%B0%A9%EB%B2%95
2. 프로그래밍 예시 - pi 근사값 구하기
:Define mc_pi(r,n)= :Prgm :Local point :For j,1,r :0→inner :For i,1,n : rand(2)→point : If point[1]^(2)+point[2]^(2)≤1 Then : inner+1→inner : EndIf :EndFor :approx(((inner)/(n))*4)→thispi :Disp "#",j,"/",r,", pi=",thispi :augment(pilist,{thispi})→pilist :EndFor :EndPrgm
- 1라운드 당 n회 random 하게 point 를 생성하고 원 내부의 점(inner point)인지를 카운트
- 1라운드 종료시 inner point 갯수로 pi 값 추정 및 저장
- r 라운드 반복 실시하여 통계 분석
3. 결과
mc_pi(5000,1000)
* 꽤 오래 걸리네요.
댓글 3
-
-
-
mc_pi(5000,100000)
-
-
-
같은 알고리즘을 R 에서 구현해 보니...
(TI-nspire PC software 와 비교해서) 대략 40~50배 정도 빠른 것 같습니다.> mean(pivec)
[1] 3.141558> var(pivec)
[1] 2.657263e-05> sd(pivec)
[1] 0.005154864> length(pivec)
[1] 5000>
-
mc_pi(5000,10000)
구해진 pi 값은 오히려 (5000,1000)보다 더 부정확하게 나왔습니다.