matlab 双峰,在MATLAB中如何将双峰曲线分为两个单峰曲线?

3afc83d876b6c9e52c89260b23c60107.png

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分布的随机数,不过这些要归一化。

============================================

首先,我知道我的是错的了。如下图就可知

M=1000; %产生M行N列的随机数矩阵

N=1;

miu1=1;%第一个分布的参数

sigma1=2;%第一个分布的参数

miu2=6;%第二个分布的参数

sigma2=1;%第二个分布的参数

R = 0.2*normrnd(miu1,sigma1,M,N)+0.8*normrnd(miu2,sigma2,M,N);

x=-5:0.001:15;

y1=normpdf(x,miu1,sigma1);

y2=normpdf(x,miu2,sigma2);

subplot(2,2,1);

plot(x,y1);

subplot(2,2,2);

plot(x,y2);

subplot(2,2,3);

y3=0.2*y1+0.8*y2;

plot(x,y3);

subplot(2,2,4)

dx=0.5;

xx=-5:dx:15;

yy=hist(R,xx);

yy=yy/M/dx;

plot(x,y3);

hold on

bar(xx,yy)

=======================================

正确做法,我还没弄出来,继续中。。。。

============================================

_____________________新的尝试

下面的结果我觉得可能可以接受。

思路:基于反变换法

Matlab下面有

p=normpdf(x,miu,sigma)是求出x处的概率密度。

p=normcdf(x,miu,sigma)是求出X<x的累积概率密度(就是从负无穷大到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*')

◆◆

评论读取中....

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值