24小时热门版块排行榜    

查看: 983  |  回复: 3

涛涛屈

银虫 (初入文坛)

[求助] 求助MATLAB中程序看不懂的简单问题!谢谢! 已有1人参与

N =input(' 输入模拟次数 N = ');
t=cputime; % 计时起点
p =rand(1,3*N ); % 产生随机数
x1=norminv(p(1:N ),551.4,44.1);
x2=norminv(p(N +1:2*N ),0.70,0.05);
x3=norminv(p(2*N +1:3*N ),0.85,0.09);
S=x1.*x2.*x3;
E=sum(S)/N % 求均值
sigma=std(S) % 求标准差
sort(S); % 排序
hist(S,30) % 画直方图
t0=cputime-t  %计时终点

第四行中p(1:N )、第五行中的p(N +1:2*N )、第六行中的p(2*N +1:3*N )。说是表示 正态分布的概率值。为什么要这样表示?而且每个都不一样?p中间到底表示什么含义?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ultro

铁杆木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
涛涛屈: 金币+28, ★★★★★最佳答案 2015-01-14 10:03:47
楼主看matlab的help函数可以知道, X = NORMINV(P,MU,SIGMA) ,其中,P表示概率。MU表示均值, SIGMA是方差; 即有一个正态分布, 返回值X分位点处的概率为P. 简单说来, norminv是知道小于分位点的概率求分位点。如图所示:

程序第三行社生成了长度为3N的随机数矩阵, 这实际上就是一个一个的概率值, 然后分3个长度为N的3段进行处理, 分别是第4~6行;
根据norminv函数, 4~6行得到的x1,x2,x3实际上应该就是3个正态分布的概率密度值;
而后S就是3个正态分布相乘的, 楼主的程序是否是要求正态分布乘积的概率分布?
本人理解请参考!
2楼2015-01-12 23:34:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

涛涛屈

银虫 (初入文坛)

引用回帖:
2楼: Originally posted by ultro at 2015-01-12 23:34:30
楼主看matlab的help函数可以知道, X = NORMINV(P,MU,SIGMA) ,其中,P表示概率。MU表示均值, SIGMA是方差; 即有一个正态分布, 返回值X分位点处的概率为P. 简单说来, norminv是知道小于分位点的概率求分位点。如图所 ...

非常感谢!正是求正态分布乘积的概率分布。想再请问下分三段处理的好处是什么?谢谢,祝您身体健康,事事顺心!
3楼2015-01-14 10:16:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ultro

铁杆木虫 (正式写手)

引用回帖:
3楼: Originally posted by 涛涛屈 at 2015-01-14 10:16:49
非常感谢!正是求正态分布乘积的概率分布。想再请问下分三段处理的好处是什么?谢谢,祝您身体健康,事事顺心!...

我感觉并非是分3段处理有什么好处, 而是程序想做的就是3个正态分布的乘积, 所以模拟次数为N, 下面生成了3*N的随机数, 得到x_1~3这3个正态样本; 换言之, 如果是求4个, 就会是rand(1,4*N), x_1~4; 保证每个样本都做了N此模拟就ok
4楼2015-01-14 10:39:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 涛涛屈 的主题更新
信息提示
请填处理意见