MATLAB 으로 PDF 를 그려보자.

PDF(Probability Density Function)라는게 어케 보면 Histogram이랑 개형은 같지만

엄밀하게 얘기하면 좀 다르다고 할 수 있다.

그 차이는 바로 Normalization에 있다.

PDF 의 특징은 그 적분값이 1 이어야 하므로 당연히 Histogram 을 그린후 그 넓이를 Normalization 을 해야한다.

간단하게 [0 100] 구간의 Uniform pdf 를 그려 보자.

MATLAB editor 에 다음과 같이 타이핑 하고 실행해 보자

<MATLAB CODE>


N = 3000;

Uniform_sample=rand(N,N)*100; % 0~ 100 사이의 Uniform sample 을 발생시킨다.

[pdf,X]= hist(Uniform_sample(:), 500); % hist 함수를 이용하여 구간별로 쌓아준다

resol=X(2)-X(1);             % resolution을 계산한다.

pdf= pdf/(N^2.*resol); % Normalization 해 준다.

figure(1), bar(X,pdf), grid on, title('Uniform PDF') % 그래프를 그린다.

그래프를 보면 딱 봐도 넓이가 100 * 0.01 =1 이라는 것을 알 수 있다. 이게 제대로 된 PDF 이다.

 

그럼 좀더 나아가서 rand() 함수를 이용하여 Gaussian sample 을 만들고 PDF 를 그려 보자.

 

<MATLAB CODE>

 

N = 3000;

std = 2; % 표준편차

std_normal=sqrt(-2*log(rand(N))).*cos(2*pi*rand(N)); % 평균이 0 이고 분산이 1인 Gaussian Sample

NormalSample=std*std_normal; % 표준편차가 2인 Gaussian Sample

[pdf,X]= hist(NormalSample(:), 500); % hist 함수를 이용하여 구간별로 쌓아준다

resol=X(2)-X(1); % resolution을 계산한다.

pdf= pdf/(N^2.*resol); % Normalization 해 준다.

figure(2), bar(X,pdf), grid on, title('Gaussian PDF') % 그래프를 그린다.


+ Recent posts