使用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代码 .
我厌倦了很多时间用这个等式解决它:
但它不适合我 .
所有这些变量都可以使用 Matlab 生成 random 函数:http://www.mathworks.com/help/stats/random.html
Matlab
random
但你的问题可能需要从均匀分布中获得这些数字 . 因此,您需要寻找数学公式来将均匀分布转换为所需的分布,最有可能是维基百科 .
以下是公式,在Matlab中很容易实现它们:
Generating Rayleigh-distributed random variates
Generating exponential variates
Generating values from Gaussian distribution
前两种方法基于Inverse Transform Sampling . 在第三种情况下,CDF不能被分析地反转,因此ITS不起作用,并且需要特殊技术 .
EDIT
示例(瑞利):
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
2 回答
所有这些变量都可以使用
Matlab
生成random
函数:http://www.mathworks.com/help/stats/random.html但你的问题可能需要从均匀分布中获得这些数字 . 因此,您需要寻找数学公式来将均匀分布转换为所需的分布,最有可能是维基百科 .
以下是公式,在Matlab中很容易实现它们:
Generating Rayleigh-distributed random variates
Generating exponential variates
Generating values from Gaussian distribution
前两种方法基于Inverse Transform Sampling . 在第三种情况下,CDF不能被分析地反转,因此ITS不起作用,并且需要特殊技术 .
EDIT
示例(瑞利):