如何用matlab生成服从混合高斯分布的随机数比如该混合高斯分布为 F(x) = 0.2N(1,2) + 0.8N(6,1),该如何产生服从这个分布的随机数呢?单点的概率全是0,那你取出来的随机数算什么?你提示的这个

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 06:05:01
如何用matlab生成服从混合高斯分布的随机数比如该混合高斯分布为 F(x) = 0.2N(1,2) + 0.8N(6,1),该如何产生服从这个分布的随机数呢?单点的概率全是0,那你取出来的随机数算什么?你提示的这个

如何用matlab生成服从混合高斯分布的随机数比如该混合高斯分布为 F(x) = 0.2N(1,2) + 0.8N(6,1),该如何产生服从这个分布的随机数呢?单点的概率全是0,那你取出来的随机数算什么?你提示的这个
如何用matlab生成服从混合高斯分布的随机数
比如该混合高斯分布为 F(x) = 0.2N(1,2) + 0.8N(6,1),该如何产生服从这个分布的随机数呢?
单点的概率全是0,那你取出来的随机数算什么?
你提示的这个点对于连续随机变量来说的确是正确的,但是我举例的是离散随机变量,所以,单点概率并非全为零的。
再举一例(不好意思,希望你别烦,这50分肯定会给你的,我只是想跟你讨论一下,学习学习)。
对于F(x) = 0.5*N(0,1) + 0.5*N(100,1),这个分布是密度具有两个双峰的函数,峰值分别出现在x = 0和x = 100。
如果按照你的意思,最常出现的一个随机数值是0.5*0 + 0.5*100 = 50,而事实上,最常出现的随机数值应该是0和100。
我估计你是按照两个随机变量 X1 N(0,1) 和 X2 N(100,1) 的和 0.5X1 + 0.5*X2 的分布来考虑的,根据定理,两个正态随机变量的和的分布同样满足正态分布,也就是说,和的分布仍是单峰的,这与我所述情况不同。
关于“反函数法”问题,如果用解析的方法,求两个正态分布函数和的反函数就已经有点困难了,何况还得用matlab程序实现。
希望你能继续关注~:)

如何用matlab生成服从混合高斯分布的随机数比如该混合高斯分布为 F(x) = 0.2N(1,2) + 0.8N(6,1),该如何产生服从这个分布的随机数呢?单点的概率全是0,那你取出来的随机数算什么?你提示的这个
M=10; %产生M行N列的随机数矩阵
N=8;
miu1=1;%第一个分布的参数
sigma1=2;%第一个分布的参数
miu2=6;%第二个分布的参数
sigma2=1;%第二个分布的参数
R = 0.2*normrnd(miu1,sigma1,M,N)+0.8*normrnd(miu2,sigma2,M,N);
单点的概率全是0,那你取出来的随机数算什么?
若干个随机数要满足统计分布,是要按区间统计的
另外我不知道你要做什么就是了.
你如果想按一定的概率密度来产生随机数,你最好用反函数法之类的来弄.
比如产生一个x.^2分布的随机数,不过这些要归一化.

_____________________新的尝试
下面的结果我觉得可能可以接受.
思路:基于反变换法
Matlab下面有
p=normpdf(x,miu,sigma)是求出x处的概率密度.
p=normcdf(x,miu,sigma)是求出X我给定一个区间,这个区间外的概率我认为是0(这一点不够严谨,理论上应当是从负无穷到正无穷)
我这里取的是-10:15,其间我取了25000个点,求出这些点的累积概率值(两个的加权和y3),记这个为F(x),根据反变换法,
F(x)=u,其中u是一个0到1的均匀随机数.只要求出它的解x0,那么x0就满足所给定的概率密度分布.这里我用的是插值.用
(y3,x)来插值出u所在的位置
声明,这里有一些地方不够严谨,严谨应当用解析的方法来做反变换.
%%%%%下面是程序
M=1000; %产生M行N列的随机数矩阵
N=1;
miu1=1;%第一个分布的参数
sigma1=2;%第一个分布的参数
miu2=6;%第二个分布的参数
sigma2=1;%第二个分布的参数
x=-10:0.001:15;
y1=normpdf(x,miu1,sigma1);
y2=normpdf(x,miu2,sigma2);
y3=0.2*y1+0.8*y2;
y1=normcdf(x,miu1,sigma1);
y2=normcdf(x,miu2,sigma2);
y=0.2*y1+0.8*y2;
u=rand(N,M);
R=interp1(y,x,u,'linear');
dx=0.5;
xx=-10:dx:15;
yy=hist(R,xx);
yy=yy/M/dx;
bar(xx,yy)
hold on;
plot(x,y3,'r*')

如何用matlab生成服从二维高斯分布N(0,2,1,4,0)的样本(X,Y) 如何用matlab生成服从混合高斯分布的随机数比如该混合高斯分布为 F(x) = 0.2N(1,2) + 0.8N(6,1),该如何产生服从这个分布的随机数呢?单点的概率全是0,那你取出来的随机数算什么?你提示的这个 如何用MATLAB产生高斯随机序列产生的序列符合高斯分布 给出指定分布函数,如何用matlab生成符合该分布的随机数? 如何用matlab产生100个服从(0,0.5)分布的正态函数,并能做出正态分布图? 如何用matlab验证高斯变量的独立性 利用matlab生成[-0.1,0.1]之间的服从高斯分布随机数我有两条模拟数据的曲线,它们是在[-0.1,0.1]之间数据,不是服从高斯的,并且画出了pdf曲线.我想画一条高斯分布的pdf作为对比曲线.不知道这样描 求助matlab生成服从广义指数分布的随机数 分布函数是 如何用matlab画带有Gamma分布的函数 如何用matlab再一张图上画出不同自由度的卡方分布,F分布.B分布? 如何在Matlab里面判断一个序列是否满足高斯分布如题,生成一个序列,如何判断序列是否满足高斯分布?在Matlab里有没有方便简单的方法,粗略估计一下即可~ 如何用matlab作正态分布的检验?有一组数,希望能画出频数分布直方图,然后用matlab检验它是否服从正态分布,求程序(包括画直方图和正态检验)最好能够写出注释 如何用matlab画泊松分布图像 如何用MATLAB输出F分布数值? 如何用matlab生成随机数函数 已知泊松分布或正态分布的累积概率值,如何用matlab求出其分位点例如,已知某随机变量服从lambda为5的泊松分布,b=0.7211 查泊松分布表可知,当x=6时,累积概率=0.7621 离0.7211最接近,怎么用matlab返回6 什么是高斯分布?高斯分布就是正态分布吗?服从高斯分布的信号有什么特点吗? matlab如何生成服从复高斯分布的随机数(均值为0,方差为1)要求是生成的数为复数,且服从均值为0,方差为1的复高斯分布