블로그 보관함

2011년 5월 18일 수요일

Octave에서 확률 분포의 함수 이용하기

Octave는 MATLAB의 자유소프트웨어 판이라고 할 수 있다. 완전히는 아니지만 MATLAB의 기능을 대체할 수 있다. 문법도 MATLAB과 거의 똑같다.  그래서 Scientific Computing with MATLAB and Octave 같은 책도 있다.

Octave에서 표준정규분포의 확률밀도함수(pdf)를 그려보자. MATLAB에서도 동일하게 작동할 것이다.

octave> fplot('normpdf(x, 0, 1)', [-3,3])
누적분포함수(cdf)를 그리는 것도 마찬가지이다. normcdf를 사용하면 된다.
octave> fplot('normcdf(x, 0, 1)', [-3,3])
흔히 qunatile function이라고도 불리는 누적분포함수의 역함수도 널리 사용되는데 다음처럼 그릴 수 있다.
octave> fplot('norminv(x, 0, 1)', [0,1])
표준정규분포에서 난수를 생성하고 싶다면 normrnd(M, V, R, C)를 이용한다. 평균 M, 분산 V인 정규분포에서 R * C 난수 행렬을 만들어 준다.
octave> normrnd(0, 1, 3, 3)
ans =

     0.109137785229567    -0.643027153866707     0.718077536091356
     -1.14166438434455    -0.992687318234478     0.692413975077409
      0.18453718070133    -0.946799427044506    -0.521163772941814

함수에 대한 도움말을 보고 싶다면

octave> help('norminv')

이외에도 기본적인 확률 분포를 위한 함수들이 제공된다.

댓글 없음:

댓글 쓰기