平旦 2018-01-23 05:51 采纳率: 0%
浏览 1296
已结题

matlab生成概率密度符合分段一次函数的随机数问题

想生成的随机数的概率密度符合这个函数:
f(x)=4x,0<=x<=0.5
4-4x,0.5<=x<=1
我在网上找了一些教程,发现这个函数本身很简单,可以求反函数,就想用反函数法求一下随机数,下面是我的程序
clear all
close all
clc
x1 = 0 + (0.5-0).*rand([1 100000]);
% x1=0.5*x0;
Y=x1.^0.5;
t=(0:0.01:0.5);
y=4*t;
plot(t,y)
hold on
% figure
% hist(Y,100);
[histFreq, histXout] = hist(Y,100);
binWidth = histXout(2)-histXout(1);
h=bar(histXout, histFreq/binWidth/sum(histFreq));

hold on
% figure

x1 =0.5 + (1-0.5).*rand([1 100000]);
% x1=0.5*x0+0.5;
Y=-((1-x1).^0.5-1);
t=(0.5:0.01:1);
y=4-4*t;
plot(t,y);
hold on
% figure
% hist(Y,100);

[histFreq, histXout] = hist(Y,100);
binWidth = histXout(2)-histXout(1);
bar(histXout, histFreq/binWidth/sum(histFreq),'r')
不知道是我哪里理解错了还是哪里有问题,前一部分Y的取值怎么约束到0-0.5啊?用我的算法取值只能是到二分之根号二啊,这个程序应该怎么办,或者用别的程序能达到我的要求也行,各位大神支支招。

  • 写回答

2条回答 默认 最新

  • xswbsjgs 2018-01-23 09:30
    关注

    反推法吗?试试拒绝法吧

    评论

报告相同问题?

悬赏问题

  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?