使用MATLAB,您必须从(0,1)之间的均匀分布开始。您需要生成以下随机变量序列:
1.Rayleigh分布随机变量。 (a = 0,b = 1)。
2.指数R.V. (a = 0,b = 1)
3.Gaussian R.V. (a = 0,(σX)= 2)
至少,给我一个第一个MATLAB代码。
我花了很多时间用这个等式解决它:
但它不能与我合作。
答案 0 :(得分:3)
以下是公式,在Matlab中实现它们很容易:
前两种方法基于Inverse Transform Sampling。在第三种情况下,CDF不能被分析反转,因此ITS不起作用,需要特殊技术。
修改强>
示例(瑞利):
n = 10000; % number of variates
u = rand(n, 1); % generating uniform variates
sigma = 1; % the parameter
x = sigma * sqrt(-2 * log(u)); % generating Rayleigh-distributed variates
hist(x, 50); % histogram
答案 1 :(得分:1)
所有这些变量都可以使用Matlab
random
函数生成{{1}}:http://www.mathworks.com/help/stats/random.html
但是你的问题可能需要从均匀分布中获得这些数字。所以你要寻找数学公式来将均匀分布转换成所需的分布,最有可能是维基百科。