yyxgy 发表于 2008-4-19 15:26

如何生成在区间[-1,1]之间的服从正态分布N(0,1)的随机数

我采用randn*2-1,可是还是不行,望高手指教

wangbuliao 发表于 2008-4-19 17:40

回复 楼主 的帖子

你可以这样试试看,1/2*randn

ch_j1985 发表于 2008-4-19 20:29

原帖由 yyxgy 于 2008-4-19 15:26 发表 http://www.chinavib.com/forum/images/common/back.gif
我采用randn*2-1,可是还是不行,望高手指教


不知道这个可以不:
A= randn(1,10000);
B=max(abs(A));
C=A/B;

huright 发表于 2008-4-19 20:56

RAND()*(a-b)+b

ch_j1985 发表于 2008-4-19 22:53

原帖由 huright 于 2008-4-19 20:56 发表 http://www.chinavib.com/forum/images/common/back.gif
RAND()*(a-b)+b

您好,请问a和b是代表区间的端点吗?

davlee 发表于 2008-4-20 02:55

rand()*(a-b)+b 是生成(b,a)上均匀分布的随机数。
randn()生成N(0,1)的随机数,不过按正态分布性质能取到整个实轴。
若要限制在[-1,1],需要对生成的随机数作截断,但这样得到的方差变小了,
如果是想要截断后的随机数方差为1,又服从正态分布,考虑生成N(0,var) 的随机数,选取var让其在[-1,1]区间上
的方差积分为1,对这样的随机数再作截段。

[ 本帖最后由 davlee 于 2008-4-20 03:07 编辑 ]
页: [1]
查看完整版本: 如何生成在区间[-1,1]之间的服从正态分布N(0,1)的随机数