jf_box_muller_transform.m
来自「Box-Muller变换」· M 代码 · 共 33 行
M
33 行
% Filename: jf_Box_Muller_transform.m
% Modified: 09/14/2007, by JFang
% Description: Box-Muller transform,将[0,1]均匀分布转换为[0,1]高斯正态分布
close all;
clf;
clear;
%--------------- Box-Muller Transformation begin---------------
% A transformation which transforms from a two-dimensional continuous
% uniform distribution to a two-dimensional bivariate normal distribution.
if 1
n_steps = 100000;
gauss_xs = zeros(1, n_steps);
gauss_xn = zeros(1, n_steps);
uniform_u1 = rand(1, n_steps);
uniform_u2 = rand(1, n_steps);
for ctr_i = 1:1:n_steps
tmp = sqrt(-2*log(uniform_u1(ctr_i)));
gauss_xs(ctr_i) = tmp*cos(2*pi*uniform_u2(ctr_i));
tmp = sqrt(-2*log(uniform_u2(ctr_i)));
gauss_xn(ctr_i) = tmp*sin(2*pi*uniform_u1(ctr_i));
end
mean(gauss_xs)
var(gauss_xs)
mean(gauss_xn)
var(gauss_xn)
end
%--------------- Box-Muller Transformation end---------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?