《量化投资:以MATLAB为工具》

MATLAB技术论坛

 找回密码
 注册账号
123
返回列表 发新帖
楼主: chengyameng123
收起左侧

[提问] 已知某概率密度函数,如何产生一服从该分布的随机数

  [复制链接]
发表于 2012-6-12 10:35:42 | 显示全部楼层
老师,麻烦您帮我看一下crnd('exp(-4.759+0.1143.*x-1.508.*log(x+0.4))',[0 102], 100, 1)为什么不能运行啊?谢谢啊!~
老是提示:
Warning: Maximum function count exceeded; singularity likely.
> In quadl at 104
  In crnd>@(x)[quadl(pdffun,min(pdfdef),x)-cdfrnd(i)] at 32
  In optim\private\trustnleqn at 199
  In fsolve at 378
  In crnd at 33
发表于 2015-12-17 14:31:29 | 显示全部楼层
本帖最后由 yoki 于 2015-12-17 14:39 编辑

请问一下,我利用楼上所说的crnd函数,想生成下面概率密度函数y对应的随机数,可是随机数矩阵x的最大值达到274,超过[0.5 100]定义域范围,是为什么呢?编写的程序如下:
clc;
clear all;
y='0.1286*exp(-((x-99.71)/0.8997)^2) + 0.006678*exp(-((x-78.63)/35.77)^2)';
x=crnd(y,[0.5,100],1000,1);
[fp,xp] = ecdf(x);    % 计算经验累积概率分布函数值
ecdfhist(fp,xp,20);   % 绘制频率直方图
hold on
fplot(y,[0.5,100], 'r')    % 绘制真实密度函数曲线
xlabel('x');       % 为X轴加标签
ylabel('f(x)');    % 为Y轴加标签
回复 支持 反对

使用道具 举报

发表于 2016-5-22 23:23:17 | 显示全部楼层
xiezhh 发表于 2011-4-15 10:39
看看《MATLAB统计分析与应用:40个案例分析》,里面有相关案例。

谢老师您好,想请教您一个问题,就是按照您书上的例子可以获得一元函数的随机数,现在我已知一个复数的概率密度函数 fun=||v(x)||^2/64 其中x是一个复数 ,即是一个平面内的点坐标,这种情况我应该如何根据这个密度函数求得随机数呀?望谢老师能够回复!万分感激!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|网站地图|MATLAB技术论坛|Simulink仿真论坛 ( 蜀ICP备19014457号 

GMT+8, 2020-12-1 10:03 , Processed in 0.041887 second(s), 9 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表