Giải: Chúng ta sẽ sử dụng hàm randn() để tạo biến ngẫu nhiên phân bố chuẩn, sau đó sẽ
nhân với độ lệch chuẩn và cộng với giá trị trung bình để tạo ra phân bố Gauss như mong
muốn. Sau đó, thực hiện giải thuật 5 bước để vẽ biểu đồ tần suất như sau.
% Khoi tao bien ngau nhiên R
N = 10^6;
muR = 3;
varR = 1;
R = muR + sqrt(varR).*randn(1,N);
% Buoc 1:
xMin = min(R);
xMax = max(R);
% Buoc 2
NoB = 50;
dx = (xMax - xMin)/NoB;
% Buoc 3
x = xMin:dx:xMax;
% Buoc 4
PDF_s = zeros(size(x));
for idx = 2:length(x)
PDF_s(idx) = PDF_s(idx) + sum((R >= x(idx-1))&(R < x(idx)))/(dx*N);
end
% Buoc 5
PDF_t = 1./sqrt(2*pi*varR).*exp(-(x - muR).^2./(2*varR));
% Ve do thi
plot(x,PDF_s,'.',x,PDF_t,'-','linewidth',2);
xlabel('\it R');
ylabel('PDF');
legend('Biểu đồ tần suất','Hàm PDF lý thuyết');
set(gcf,'color','white');
Cách thứ 2 là sử dụng hàm có sẵn của Matlab, đó là hàm histogram().
Cú pháp:
histogram(X,M)
với X là vector cần vẽ biểu đồ tần suất và M nếu là một số là số lượng mốc vẽ trên đồ thị.
Không có nhận xét nào:
Đăng nhận xét